"""Broadworks OCI-P Interface Request Classes"""
# Autogenerated from the Broadworks XML Schemas.
# Do not edit as changes will be overwritten.
# Generated on 2020-09-30T08:51:44.474622
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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* password
    password = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "passcode",
            "passcode",
            str,
            False,
            True,
            False,
        ),
        E(
            "login_token",
            "loginToken",
            str,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* password
    password = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* passcode
    passcode = Field(
        type=str,
        required=True,
    )
    #: str: *Required* loginToken
    login_token = Field(
        type=str,
        required=True,
    )
    #: str: *Required* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_access_protocol",
            "deviceAccessProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_method",
            "deviceAccessMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_uri",
            "deviceAccessURI",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_user_name",
            "accessDeviceUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_user_password",
            "accessDeviceUserPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "signed_password",
            "signedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "realm_name",
            "realmName",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_ha1_complement",
            "digestHa1Complement",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_response",
            "digestResponse",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceAccessProtocol
    device_access_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessMethod
    device_access_method = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessURI
    device_access_uri = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* accessDeviceUserName
    access_device_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessDeviceUserPassword
    access_device_user_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* signedPassword
    signed_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* realmName
    realm_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestHa1Complement
    digest_ha1_complement = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestResponse
    digest_response = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "device_access_protocol",
            "deviceAccessProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_method",
            "deviceAccessMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_uri",
            "deviceAccessURI",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_user_name",
            "accessDeviceUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_user_password",
            "accessDeviceUserPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "signed_password",
            "signedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "realm_name",
            "realmName",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_ha1_complement",
            "digestHa1Complement",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_response",
            "digestResponse",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceAccessProtocol
    device_access_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessMethod
    device_access_method = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessURI
    device_access_uri = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* accessDeviceUserName
    access_device_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessDeviceUserPassword
    access_device_user_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* signedPassword
    signed_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* realmName
    realm_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestHa1Complement
    digest_ha1_complement = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestResponse
    digest_response = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_access_protocol",
            "deviceAccessProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_method",
            "deviceAccessMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_uri",
            "deviceAccessURI",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_user_name",
            "accessDeviceUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_user_password",
            "accessDeviceUserPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "signed_password",
            "signedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "realm_name",
            "realmName",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_ha1_complement",
            "digestHa1Complement",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_response",
            "digestResponse",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceAccessProtocol
    device_access_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessMethod
    device_access_method = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessURI
    device_access_uri = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* accessDeviceUserName
    access_device_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessDeviceUserPassword
    access_device_user_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* signedPassword
    signed_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* realmName
    realm_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestHa1Complement
    digest_ha1_complement = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestResponse
    digest_response = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "device_access_protocol",
            "deviceAccessProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_method",
            "deviceAccessMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_access_uri",
            "deviceAccessURI",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_user_name",
            "accessDeviceUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_user_password",
            "accessDeviceUserPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_token",
            "deviceToken",
            str,
            False,
            False,
            False,
        ),
        E(
            "signed_password",
            "signedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "realm_name",
            "realmName",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_ha1_complement",
            "digestHa1Complement",
            str,
            False,
            False,
            False,
        ),
        E(
            "digest_response",
            "digestResponse",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceAccessProtocol
    device_access_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessMethod
    device_access_method = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceAccessURI
    device_access_uri = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* accessDeviceUserName
    access_device_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessDeviceUserPassword
    access_device_user_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceToken
    device_token = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* signedPassword
    signed_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* realmName
    realm_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestHa1Complement
    digest_ha1_complement = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* digestResponse
    digest_response = Field(
        type=str,
        required=False,
    )


class DeviceManagementPutFileRequest(OCIRequest):
    """
    Informs BroadWorks that a file was uploaded to the repository. The response is
    always a ``SuccessResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_access_uri",
            "deviceAccessURI",
            str,
            False,
            True,
            False,
        ),
        E(
            "ip_address",
            "ipAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceAccessURI
    device_access_uri = Field(
        type=str,
        required=True,
    )
    #: str: *Required* ipAddress
    ip_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "deactivation_reason",
            "deactivationReason",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* deactivationReason
    deactivation_reason = Field(
        type=str,
        required=False,
    )


class EnterpriseBroadWorksMobileManagerAddHomeZoneRequest(OCIRequest):
    """
    Add a home zone to the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_domain_name",
            "homeZoneDomainName",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_country_code",
            "mobileCountryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_network_code",
            "mobileNetworkCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "location_area_code",
            "locationAreaCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "cell_identity",
            "cellIdentity",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneDomainName
    home_zone_domain_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileCountryCode
    mobile_country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNetworkCode
    mobile_network_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locationAreaCode
    location_area_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* cellIdentity
    cell_identity = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "information_file",
            "informationFile",
            str,
            False,
            True,
            False,
        ),
        E(
            "certificate_file",
            "certificateFile",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "local_to_carrier",
            "localToCarrier",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_tx_per_second_enabled",
            "maxTxPerSecondEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_tx_per_second",
            "maxTxPerSecond",
            int,
            False,
            False,
            False,
        ),
        E(
            "tldn_enabled",
            "tldnEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "generic_number_enabled",
            "genericNumberEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mobile_state_check_enabled",
            "mobileStateCheckEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "location_based_services_enabled",
            "locationBasedServicesEnabled",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* informationFile
    information_file = Field(
        type=str,
        required=True,
    )
    #: str: *Required* certificateFile
    certificate_file = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* localToCarrier
    local_to_carrier = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* maxTxPerSecondEnabled
    max_tx_per_second_enabled = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* maxTxPerSecond
    max_tx_per_second = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* tldnEnabled
    tldn_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* genericNumberEnabled
    generic_number_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* mobileStateCheckEnabled
    mobile_state_check_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* locationBasedServicesEnabled
    location_based_services_enabled = Field(
        type=bool,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerDeleteHomeZoneListRequest(OCIRequest):
    """
    Delete a list of home zones from the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerDeleteHomeZoneRequest(OCIRequest):
    """
    Delete a home zone from the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerDeleteRequest(OCIRequest):
    """
    Delete the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerGetDomainListRequest(OCIRequest):
    """
    Get the list of domains of the BroadWorks Mobile Manager.
    The response is either ``EnterpriseBroadWorksMobileManagerGetDomainListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerGetHomeZoneListRequest(OCIRequest):
    """
    Get the list of home zones of the BroadWorks Mobile Manager.
    The response is either ``EnterpriseBroadWorksMobileManagerGetHomeZoneListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerGetHomeZoneRequest(OCIRequest):
    """
    Get a home zone from the BroadWorks Mobile Manager.
    The response is either ``EnterpriseBroadWorksMobileManagerGetHomeZoneResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerGetRequest(OCIRequest):
    """
    Get the BroadWorks Mobile Manager.
    The response is either ``EnterpriseBroadWorksMobileManagerGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseBroadWorksMobileManagerModifyHomeZoneRequest(OCIRequest):
    """
    Modify an existing home zone in the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_domain_name",
            "homeZoneDomainName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_country_code",
            "mobileCountryCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_network_code",
            "mobileNetworkCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "location_area_code",
            "locationAreaCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "cell_identity",
            "cellIdentity",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* homeZoneDomainName
    home_zone_domain_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobileCountryCode
    mobile_country_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobileNetworkCode
    mobile_network_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* locationAreaCode
    location_area_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* cellIdentity
    cell_identity = Field(
        type=str,
        required=False,
    )


class EnterpriseBroadWorksMobileManagerModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobile Manager settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "information_file",
            "informationFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "certificate_file",
            "certificateFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "local_to_carrier",
            "localToCarrier",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_tx_per_second_enabled",
            "maxTxPerSecondEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_tx_per_second",
            "maxTxPerSecond",
            int,
            False,
            False,
            False,
        ),
        E(
            "tldn_enabled",
            "tldnEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "generic_number_enabled",
            "genericNumberEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mobile_state_check_enabled",
            "mobileStateCheckEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "location_based_services_enabled",
            "locationBasedServicesEnabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* informationFile
    information_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* certificateFile
    certificate_file = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* localToCarrier
    local_to_carrier = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* maxTxPerSecondEnabled
    max_tx_per_second_enabled = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxTxPerSecond
    max_tx_per_second = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* tldnEnabled
    tldn_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* genericNumberEnabled
    generic_number_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mobileStateCheckEnabled
    mobile_state_check_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* locationBasedServicesEnabled
    location_based_services_enabled = Field(
        type=bool,
        required=False,
    )


class EnterpriseBroadWorksMobileManagerSendCarrierFilesRequest(OCIRequest):
    """
    Sends an email with the carrier information and certificate files.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "email_to",
            "emailTo",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* emailTo
    email_to = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterAgentThresholdProfileAddRequest(OCIRequest):
    """
    Add a new Call Center Agent Threshold Profile in an Enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_description",
            "profileDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_yellow",
            "thresholdAverageBusyInTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_red",
            "thresholdAverageBusyInTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_yellow",
            "thresholdAverageBusyOutTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_red",
            "thresholdAverageBusyOutTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_yellow",
            "thresholdAverageWrapUpTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_red",
            "thresholdAverageWrapUpTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_notification_email",
            "enableNotificationEmail",
            bool,
            False,
            True,
            False,
        ),
        E(
            "notification_email_address",
            "notificationEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* profileDescription
    profile_description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeYellow
    threshold_current_call_state_idle_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeRed
    threshold_current_call_state_idle_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeYellow
    threshold_current_call_state_on_call_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeRed
    threshold_current_call_state_on_call_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeYellow
    threshold_current_agent_state_unavailable_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeRed
    threshold_current_agent_state_unavailable_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeYellow
    threshold_average_busy_in_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeRed
    threshold_average_busy_in_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeYellow
    threshold_average_busy_out_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeRed
    threshold_average_busy_out_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeYellow
    threshold_average_wrap_up_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeRed
    threshold_average_wrap_up_time_red = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableNotificationEmail
    enable_notification_email = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* notificationEmailAddress
    notification_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterAgentThresholdProfileGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Threshold Profiles in the Enterprise.
    The response is either ``EnterpriseCallCenterAgentThresholdProfileGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterAgentUnavailableCodeAddRequest(OCIRequest):
    """
    Add a Call Center Agent Unavailable Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class EnterpriseCallCenterAgentUnavailableCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Agent Unavailable Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterAgentUnavailableCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Unavailable Codes.
    The response is either ``EnterpriseCallCenterAgentUnavailableCodeGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterAgentUnavailableCodeGetRequest(OCIRequest):
    """
    Get a Call Center Agent Unavailable Code.
    The response is either ``EnterpriseCallCenterAgentUnavailableCodeGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterAgentUnavailableCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Agent Unavailable Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class EnterpriseCallCenterCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Call Disposition Codes.
    The response is either ``EnterpriseCallCenterCallDispositionCodeGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Call Center Call Disposition Code.
    The response is either ``EnterpriseCallCenterCallDispositionCodeGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterCallDispositionCodeGetUsageListRequest(OCIRequest):
    """
    Get the list of Call Centers and Route Points using the specified disposition code.
    The response is either ``EnterpriseCallCenterCallDispositionCodeGetUsageListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingBrandingGetRequest(OCIRequest):
    """
    Request to get the enterprise branding information.
    The response is either ``EnterpriseCallCenterEnhancedReportingBrandingGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingGetAvailableReportTemplateListRequest(
    OCIRequest,
):
    """
    Request to get all enabled call center report template for an enterprise.
    The response is either an ``EnterpriseCallCenterEnhancedReportingGetAvailableReportTemplateListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingGetRequest19(OCIRequest):
    """
    Request to get an enterprise level call center enhanced reporting setting.
    The response is either an ``EnterpriseCallCenterEnhancedReportingGetResponse19()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reporting_server",
            "reportingServer",
            str,
            False,
            False,
            False,
        ),
        E(
            "web_statistic_source",
            "webStatisticSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reportingServer
    reporting_server = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* webStatisticSource
    web_statistic_source = Field(
        type=str,
        required=False,
    )


class EnterpriseCallCenterEnhancedReportingModifyRequest19(OCIRequest):
    """
    Request to modify enterprise level call center enhanced reporting settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reporting_server",
            "reportingServer",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reportingServer
    reporting_server = Field(
        type=str,
        required=False,
    )


class EnterpriseCallCenterEnhancedReportingReportTemplateDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingReportTemplateGetListRequest(OCIRequest):
    """
    Request to get enterprise level call center report template list.
    The response is either an ``EnterpriseCallCenterEnhancedReportingReportTemplateGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingReportTemplateGetRequest(OCIRequest):
    """
    Request to get an enterprise level call center report template.
    The response is either an ``EnterpriseCallCenterEnhancedReportingReportTemplateGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingScheduledReportDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise level call center reporting scheduled report.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterEnhancedReportingScheduledReportGetRequest(OCIRequest):
    """
    Request to get an enterprise level call center reporting scheduled report.
    The response is either an ``EnterpriseCallCenterEnhancedReportingScheduledReportGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterGetRequest(OCIRequest):
    """
    Request the enterprise level data associated with Call Center.
    The response is either an ``EnterpriseCallCenterGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced by ``EnterpriseCallCenterGetRequest17sp4()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterGetRequest17sp4(OCIRequest):
    """
    Request the enterprise level data associated with Call Center.
    The response is either an ``EnterpriseCallCenterGetResponse17sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseCallCenterGetRoutingPolicyRequest(OCIRequest):
    """
    Request the enterprise call center routing policy.
    The response is either an ``EnterpriseCallCenterGetRoutingPolicyResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_default_guard_timer",
            "useSystemDefaultGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useSystemDefaultGuardTimer
    use_system_default_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultUnavailableSettings
    use_system_default_unavailable_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnDNDActivation
    force_agent_unavailable_on_dnd_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnPersonalCalls
    force_agent_unavailable_on_personal_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnBouncedCallLimit
    force_agent_unavailable_on_bounced_call_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberConsecutiveBouncedCallsToForceAgentUnavailable
    number_consecutive_bounced_calls_to_force_agent_unavailable = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnNotReachable
    force_agent_unavailable_on_not_reachable = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )


class EnterpriseCommonPhoneListModifyRequest(OCIRequest):
    """
    Modify an entry in an enterprise's common phone list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_entry_name",
            "newEntryName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEntryName
    new_entry_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )


class EnterpriseDepartmentDeleteRequest(OCIRequest):
    """
    Delete a department from an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_group_departments",
            "includeGroupDepartments",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeGroupDepartments
    include_group_departments = Field(
        type=bool,
        required=True,
    )


class EnterpriseEnterpriseTrunkAddRequest(OCIRequest):
    """
    Request to add an enterprise trunk in an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By ``EnterpriseEnterpriseTrunkAddRequest21()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "maximum_reroute_attempts",
            "maximumRerouteAttempts",
            int,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_action",
            "routeExhaustionAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_forward_address",
            "routeExhaustionForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ordered_routing",
            "orderedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "priority_weighted_routing",
            "priorityWeightedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maximumRerouteAttempts
    maximum_reroute_attempts = Field(
        type=int,
        required=True,
    )
    #: str: *Required* routeExhaustionAction
    route_exhaustion_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routeExhaustionForwardAddress
    route_exhaustion_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Required* orderedRouting
    ordered_routing = Field(
        type=str,
        required=True,
    )
    #: str: *Required* priorityWeightedRouting
    priority_weighted_routing = Field(
        type=str,
        required=True,
    )


class EnterpriseEnterpriseTrunkAddRequest21(OCIRequest):
    """
    Request to add an enterprise trunk in an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "maximum_reroute_attempts",
            "maximumRerouteAttempts",
            int,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_action",
            "routeExhaustionAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_forward_address",
            "routeExhaustionForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ordered_routing",
            "orderedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "priority_weighted_routing",
            "priorityWeightedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "enable_capacity_management",
            "enableCapacityManagement",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maximumRerouteAttempts
    maximum_reroute_attempts = Field(
        type=int,
        required=True,
    )
    #: str: *Required* routeExhaustionAction
    route_exhaustion_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routeExhaustionForwardAddress
    route_exhaustion_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Required* orderedRouting
    ordered_routing = Field(
        type=str,
        required=True,
    )
    #: str: *Required* priorityWeightedRouting
    priority_weighted_routing = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableCapacityManagement
    enable_capacity_management = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )


class EnterpriseEnterpriseTrunkAddUserListRequest(OCIRequest):
    """
    Request to add users to an enterprise trunk in an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class EnterpriseEnterpriseTrunkDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise trunk in an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )


class EnterpriseEnterpriseTrunkDeleteUserListRequest(OCIRequest):
    """
    Request to delete users from an enterprise trunk in an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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

    Replaced By ``EnterpriseEnterpriseTrunkGetRequest21()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )


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

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )


class EnterpriseEnterpriseTrunkModifyRequest(OCIRequest):
    """
    Request to modify an enterprise trunk in an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_enterprise_trunk_name",
            "newEnterpriseTrunkName",
            str,
            False,
            False,
            False,
        ),
        E(
            "maximum_reroute_attempts",
            "maximumRerouteAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "route_exhaustion_action",
            "routeExhaustionAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_exhaustion_forward_address",
            "routeExhaustionForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ordered_routing",
            "orderedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "priority_weighted_routing",
            "priorityWeightedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "enable_capacity_management",
            "enableCapacityManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEnterpriseTrunkName
    new_enterprise_trunk_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maximumRerouteAttempts
    maximum_reroute_attempts = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* routeExhaustionAction
    route_exhaustion_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* routeExhaustionForwardAddress
    route_exhaustion_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Required* orderedRouting
    ordered_routing = Field(
        type=str,
        required=True,
    )
    #: str: *Required* priorityWeightedRouting
    priority_weighted_routing = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableCapacityManagement
    enable_capacity_management = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )


class EnterprisePreAlertingAnnouncementGetRequest(OCIRequest):
    """
    Get the Enterprise pre-alerting service settings.
    The response is either a ``EnterprisePreAlertingAnnouncementGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all enterprise trunk number ranges in the enterprise.
    The response is either ``EnterpriseRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseSessionAdmissionControlGroupGetRequest(OCIRequest):
    """
    Request to get a session admission control group for the enterprise.
    The response is either an ``EnterpriseSessionAdmissionControlGroupGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class EnterpriseSessionAdmissionControlGroupGetRequest19sp1(OCIRequest):
    """
    Request to get a session admission control group for the enterprise.
    The response is either an ``EnterpriseSessionAdmissionControlGroupGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class EnterpriseVoiceVPNDeletePolicyRequest(OCIRequest):
    """
    Delete a enterprise voice VPN location.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "location_dialing_code",
            "locationDialingCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locationDialingCode
    location_dialing_code = Field(
        type=str,
        required=True,
    )


class EnterpriseVoiceVPNGetDefaultRequest(OCIRequest):
    """
    Request the Voice VPN default settings for the enterprise.
    The response is ``EnterpriseVoiceVPNGetDefaultResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseVoiceVPNGetPolicyRequest(OCIRequest):
    """
    Request the enterprise level data associated with Voice VPN location code.
    The response is either a ``EnterpriseVoiceVPNGetPolicyResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "location_dialing_code",
            "locationDialingCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locationDialingCode
    location_dialing_code = Field(
        type=str,
        required=True,
    )


class EnterpriseVoiceVPNGetRequest(OCIRequest):
    """
    Request the enterprise level data associated with Voice VPN.
    The response is either a ``EnterpriseVoiceVPNGetResponse()`` or an ``ErrorResponse()``.
    Replaced By ``EnterpriseVoiceVPNGetRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class EnterpriseVoiceVPNGetRequest14sp3(OCIRequest):
    """
    Request the enterprise level data associated with Voice VPN.
    The response is either a ``EnterpriseVoiceVPNGetResponse14sp3()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_selection",
            "defaultSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "e164_selection",
            "e164Selection",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_phone_context",
            "usePhoneContext",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultSelection
    default_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* e164Selection
    e164_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* usePhoneContext
    use_phone_context = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "login_token",
            "loginToken",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Required* loginToken
    login_token = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceCustomTagAddRequest(OCIRequest):
    """
    Request to add a static configuration tag for a group access device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class GroupAccessDeviceCustomTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags for a group access device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceCustomTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag for a group access device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class GroupAccessDeviceDeleteRequest(OCIRequest):
    """
    Request to delete a specified group access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a group device profile file.
    The response is either ``GroupAccessDeviceFileGetResponse()`` or ``ErrorResponse()``.
    Replaced By ``GroupAccessDeviceFileGetRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceFileGetRequest14sp8(OCIRequest):
    """
    Request to get a group device profile file.
    The response is either ``GroupAccessDeviceFileGetResponse14sp8()`` or ``ErrorResponse()``.
    Replaced By ``GroupAccessDeviceFileGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceFileGetRequest16sp1(OCIRequest):
    """
    Request to get a group device profile file.
    The response is either ``GroupAccessDeviceFileGetResponse16sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceFileGetRequest20(OCIRequest):
    """
    Request to get a group device profile file.
    The response is either ``GroupAccessDeviceFileGetResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold",
            "isMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_video_capable",
            "onlyVideoCapable",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isMusicOnHold
    is_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyVideoCapable
    only_video_capable = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold",
            "isMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_video_capable",
            "onlyVideoCapable",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isMusicOnHold
    is_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyVideoCapable
    only_video_capable = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceGetEnhancedConfigurationTypeRequest14(OCIRequest):
    """
    Requests the details of a specified configurable device type for a group.
    The response is either ``GroupAccessDeviceGetEnhancedConfigurationTypeResponse14()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceGetRequest14(OCIRequest):
    """
    Requests the configuration of a specified group access device.
    The response is either ``GroupAccessDeviceGetResponse14()`` or ``ErrorResponse()``.
    Replaced By ``GroupAccessDeviceGetRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceGetRequest14sp3(OCIRequest):
    """
    Requests the configuration of a specified group access device.
    The response is either ``GroupAccessDeviceGetResponse14sp3()`` or ``ErrorResponse()``.
    Replaced By ``GroupAccessDeviceGetRequest14sp6()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceGetRequest14sp6(OCIRequest):
    """
    Requests the configuration of a specified group access device.
    The response is either ``GroupAccessDeviceGetResponse14sp6()`` or ``ErrorResponse()``.
    Replaced By ``GroupAccessDeviceGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceGetRequest16(OCIRequest):
    """
    Requests the configuration of a specified group access device.
    The response is either ``GroupAccessDeviceGetResponse16()`` or ``ErrorResponse()``.

    Replaced By ``GroupAccessDeviceGetRequest18sp1()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccessDeviceGetRequest18sp1(OCIRequest):
    """
    Requests the configuration of a specified group access device.
    The response is either ``GroupAccessDeviceGetResponse18sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_port",
            "linePort",
            str,
            False,
            True,
            False,
        ),
        E(
            "private_identity",
            "privateIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_primary_line_port",
            "isPrimaryLinePort",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* linePort
    line_port = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* privateIdentity
    private_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isPrimaryLinePort
    is_primary_line_port = Field(
        type=bool,
        required=False,
    )


class GroupAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific group SIP device that supports the reset operation.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupAccountAuthorizationCodesDeleteListRequest(OCIRequest):
    """
    Delete a list of account/authorization codes from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupAccountAuthorizationCodesGetListRequest(OCIRequest):
    """
    Request the list of account/authorization codes for a group.
    The response is either a ``GroupAccountAuthorizationCodesGetListResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupAccountAuthorizationCodesGetRequest(OCIRequest):
    """
    Request the group's account/authorization codes setting.
    The response is either a ``GroupAccountAuthorizationCodesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupAdminAddRequest(OCIRequest):
    """
    Add a group administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )


class GroupAdminDeleteRequest(OCIRequest):
    """
    Delete a group administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetListRequest(OCIRequest):
    """
    Get a list of group and department administrators within the group.
    The response is either a ``GroupAdminGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest14sp1(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse14sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest16sp1(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse16sp1()`` or ``ErrorResponse()``.
    Replaced By ``GroupAdminGetPolicyRequest17()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest16sp2(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse16sp2()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest17(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest17sp3(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse17sp3()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest18(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse18()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest19sp1(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse19sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetPolicyRequest20(OCIRequest):
    """
    Requests the Group administrator's policy settings.
    The response is either ``GroupAdminGetPolicyResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupAdminGetRequest(OCIRequest):
    """
    Get a group administrators profile.
    The response is either a ``GroupAdminGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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)
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_access",
            "profileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_access",
            "userAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "admin_access",
            "adminAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "department_access",
            "departmentAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_access",
            "accessDeviceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "enhanced_service_instance_access",
            "enhancedServiceInstanceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "feature_access_code_access",
            "featureAccessCodeAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number_extension_access",
            "phoneNumberExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_number_access",
            "callingLineIdNumberAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_access",
            "serviceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_access",
            "trunkGroupAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "session_admission_control_access",
            "sessionAdmissionControlAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "office_zone_access",
            "officeZoneAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "dialable_caller_id_access",
            "dialableCallerIDAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "number_activation_access",
            "numberActivationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "verify_translation_and_routing_access",
            "verifyTranslationAndRoutingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "communication_barring_user_profile_access",
            "communicationBarringUserProfileAccess",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* profileAccess
    profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userAccess
    user_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* adminAccess
    admin_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* departmentAccess
    department_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessDeviceAccess
    access_device_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enhancedServiceInstanceAccess
    enhanced_service_instance_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* featureAccessCodeAccess
    feature_access_code_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumberExtensionAccess
    phone_number_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdNumberAccess
    calling_line_id_number_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceAccess
    service_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupAccess
    trunk_group_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sessionAdmissionControlAccess
    session_admission_control_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* officeZoneAccess
    office_zone_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* dialableCallerIDAccess
    dialable_caller_id_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* numberActivationAccess
    number_activation_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* verifyTranslationAndRoutingAccess
    verify_translation_and_routing_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* communicationBarringUserProfileAccess
    communication_barring_user_profile_access = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )


class GroupAdviceOfChargeGetRequest(OCIRequest):
    """
    Request to get the list of Advice of Charge group parameters.
    The response is either ``GroupAdviceOfChargeGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupAdviceOfChargeModifyRequest(OCIRequest):
    """
    Modify the service provider level Advice Of Charge group settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_level_ao_c_settings",
            "useGroupLevelAoCSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delay_between_notification_seconds",
            "delayBetweenNotificationSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupLevelAoCSettings
    use_group_level_ao_c_settings = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* delayBetweenNotificationSeconds
    delay_between_notification_seconds = Field(
        type=int,
        required=False,
    )


class GroupApplicationServerSetGetRequest(OCIRequest):
    """
    Get the Application Server set for a group.
    The response is either a ``GroupApplicationServerSetGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupApplicationServerSetModifyRequest(OCIRequest):
    """
    Modify the Application Server set for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_server_set_name",
            "applicationServerSetName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* applicationServerSetName
    application_server_set_name = Field(
        type=str,
        required=False,
    )


class GroupAutoAttendantDeleteInstanceRequest(OCIRequest):
    """
    Delete a Auto Attendant instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupAutoAttendantGetInstanceRequest16(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.
    The response is either ``GroupAutoAttendantGetInstanceResponse16()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupAutoAttendantGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.
    The response is either ``GroupAutoAttendantGetInstanceResponse17()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupAutoAttendantGetInstanceRequest17sp1(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.
    The response is either ``GroupAutoAttendantGetInstanceResponse17sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupAutoAttendantGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.
    The response is either ``GroupAutoAttendantGetInstanceResponse19()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupAutoAttendantGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupAutoAttendantGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.
    The response is either ``GroupAutoAttendantGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupAutoAttendantGetInstanceRequest20()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupAutoAttendantGetInstanceRequest20(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.
    The response is either ``GroupAutoAttendantGetInstanceResponse20()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksAnywhereDeleteInstanceRequest(OCIRequest):
    """
    Delete a BroadWorks Anywhere instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )


class GroupBroadWorksAnywhereGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a BroadWorks Anywhere instance.
    The response is either ``GroupBroadWorksAnywhereGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksAnywhereGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a BroadWorks Anywhere instance.
    The response is either ``GroupBroadWorksAnywhereGetInstanceResponse17()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupBroadWorksAnywhereGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksAnywhereGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a BroadWorks Anywhere instance.
    The response is either ``GroupBroadWorksAnywhereGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "deactivation_reason",
            "deactivationReason",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* deactivationReason
    deactivation_reason = Field(
        type=str,
        required=False,
    )


class GroupBroadWorksMobileManagerAddHomeZoneRequest(OCIRequest):
    """
    Add a home zone to the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_domain_name",
            "homeZoneDomainName",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_country_code",
            "mobileCountryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_network_code",
            "mobileNetworkCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "location_area_code",
            "locationAreaCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "cell_identity",
            "cellIdentity",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneDomainName
    home_zone_domain_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileCountryCode
    mobile_country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNetworkCode
    mobile_network_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locationAreaCode
    location_area_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* cellIdentity
    cell_identity = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "information_file",
            "informationFile",
            str,
            False,
            True,
            False,
        ),
        E(
            "certificate_file",
            "certificateFile",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "local_to_carrier",
            "localToCarrier",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_tx_per_second_enabled",
            "maxTxPerSecondEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_tx_per_second",
            "maxTxPerSecond",
            int,
            False,
            False,
            False,
        ),
        E(
            "tldn_enabled",
            "tldnEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "generic_number_enabled",
            "genericNumberEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mobile_state_check_enabled",
            "mobileStateCheckEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "location_based_services_enabled",
            "locationBasedServicesEnabled",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* informationFile
    information_file = Field(
        type=str,
        required=True,
    )
    #: str: *Required* certificateFile
    certificate_file = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* localToCarrier
    local_to_carrier = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* maxTxPerSecondEnabled
    max_tx_per_second_enabled = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* maxTxPerSecond
    max_tx_per_second = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* tldnEnabled
    tldn_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* genericNumberEnabled
    generic_number_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* mobileStateCheckEnabled
    mobile_state_check_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* locationBasedServicesEnabled
    location_based_services_enabled = Field(
        type=bool,
        required=True,
    )


class GroupBroadWorksMobileManagerDeleteHomeZoneListRequest(OCIRequest):
    """
    Delete a list of home zones from the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerDeleteHomeZoneRequest(OCIRequest):
    """
    Delete a home zone from the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerDeleteRequest(OCIRequest):
    """
    Delete the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerGetDomainListRequest(OCIRequest):
    """
    Get the list of domains of the BroadWorks Mobile Manager.
    The response is either ``GroupBroadWorksMobileManagerGetDomainListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerGetHomeZoneListRequest(OCIRequest):
    """
    Get the list of home zones of the BroadWorks Mobile Manager.
    The response is either ``GroupBroadWorksMobileManagerGetHomeZoneListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerGetHomeZoneRequest(OCIRequest):
    """
    Get a home zone from the BroadWorks Mobile Manager.
    The response is either ``GroupBroadWorksMobileManagerGetHomeZoneResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerGetRequest(OCIRequest):
    """
    Get the BroadWorks Mobile Manager.
    The response is either ``GroupBroadWorksMobileManagerGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobileManagerModifyHomeZoneRequest(OCIRequest):
    """
    Modify an existing home zone in the BroadWorks Mobile Manager.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_id",
            "homeZoneId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_domain_name",
            "homeZoneDomainName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_country_code",
            "mobileCountryCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_network_code",
            "mobileNetworkCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "location_area_code",
            "locationAreaCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "cell_identity",
            "cellIdentity",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* homeZoneId
    home_zone_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* homeZoneDomainName
    home_zone_domain_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobileCountryCode
    mobile_country_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobileNetworkCode
    mobile_network_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* locationAreaCode
    location_area_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* cellIdentity
    cell_identity = Field(
        type=str,
        required=False,
    )


class GroupBroadWorksMobileManagerModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobile Manager settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "information_file",
            "informationFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "certificate_file",
            "certificateFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "local_to_carrier",
            "localToCarrier",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_tx_per_second_enabled",
            "maxTxPerSecondEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_tx_per_second",
            "maxTxPerSecond",
            int,
            False,
            False,
            False,
        ),
        E(
            "tldn_enabled",
            "tldnEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "generic_number_enabled",
            "genericNumberEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mobile_state_check_enabled",
            "mobileStateCheckEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "location_based_services_enabled",
            "locationBasedServicesEnabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* informationFile
    information_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* certificateFile
    certificate_file = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* localToCarrier
    local_to_carrier = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* maxTxPerSecondEnabled
    max_tx_per_second_enabled = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxTxPerSecond
    max_tx_per_second = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* tldnEnabled
    tldn_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* genericNumberEnabled
    generic_number_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mobileStateCheckEnabled
    mobile_state_check_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* locationBasedServicesEnabled
    location_based_services_enabled = Field(
        type=bool,
        required=False,
    )


class GroupBroadWorksMobileManagerSendCarrierFilesRequest(OCIRequest):
    """
    Sends an email with the carrier information and certificate files.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "email_to",
            "emailTo",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* emailTo
    email_to = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the groups BroadWorks Mobility settings.
    The response is either a ``GroupBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupBroadWorksMobilityGetRequest19sp1(OCIRequest):
    """
    Get the group's BroadWorks Mobility settings.
    The response is either a ``GroupBroadWorksMobilityGetResponse19sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_subscriber_directory_number",
            "mobileSubscriberDirectoryNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* mobileSubscriberDirectoryNumber
    mobile_subscriber_directory_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_subscriber_directory_number",
            "mobileSubscriberDirectoryNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* mobileSubscriberDirectoryNumber
    mobile_subscriber_directory_number = Field(
        type=str,
        required=False,
    )


class GroupBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the group level broadworks mobility service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_location_services",
            "enableLocationServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_msrn_lookup",
            "enableMSRNLookup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_mobile_state_checking",
            "enableMobileStateChecking",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_announcement_suppression",
            "enableAnnouncementSuppression",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableLocationServices
    enable_location_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMSRNLookup
    enable_msrn_lookup = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMobileStateChecking
    enable_mobile_state_checking = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAnnouncementSuppression
    enable_announcement_suppression = Field(
        type=bool,
        required=False,
    )


class GroupCPEConfigRebuildConfigFileRequest(OCIRequest):
    """
    Rebuild the group default config file for the specified device type.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "force",
            "force",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* force
    force = Field(
        type=bool,
        required=False,
    )


class GroupCPEConfigRebuildDeviceConfigFileRequest(OCIRequest):
    """
    Rebuild the config file for a specified device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "force",
            "force",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* force
    force = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "ordered_line_port_list",
            "orderedLinePortList",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* orderedLinePortList
    ordered_line_port_list = Field(
        type=str,
        required=True,
    )


class GroupCPEConfigResetDeviceRequest(OCIRequest):
    """
    Reset a specific group device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class GroupCPEConfigResetDeviceTypeRequest(OCIRequest):
    """
    Reset all the devices of the specified device type in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class GroupCallCapacityManagementAddInstanceRequest(OCIRequest):
    """
    Adds a Call Capacity Management group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_active_calls_allowed",
            "maxActiveCallsAllowed",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_active_calls_allowed",
            "maxIncomingActiveCallsAllowed",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_active_calls_allowed",
            "maxOutgoingActiveCallsAllowed",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group_for_new_users",
            "becomeDefaultGroupForNewUsers",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maxActiveCallsAllowed
    max_active_calls_allowed = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingActiveCallsAllowed
    max_incoming_active_calls_allowed = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingActiveCallsAllowed
    max_outgoing_active_calls_allowed = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* becomeDefaultGroupForNewUsers
    become_default_group_for_new_users = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=False,
    )


class GroupCallCapacityManagementAddUserListRequest(OCIRequest):
    """
    Adds one or more users to a Call Capacity Management group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCapacityManagementDeleteInstanceListRequest(OCIRequest):
    """
    Deletes one or more Call Capacity Management groups.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallCapacityManagementDeleteUserListRequest(OCIRequest):
    """
    Deletes one or more users from a Call Capacity Management group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCapacityManagementGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Call Capacity Management instances within a group.
    The response is either ``GroupCallCapacityManagementGetInstanceListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCapacityManagementGetInstanceRequest(OCIRequest):
    """
    Gets a Call Capacity Management group.
    The response is either ``GroupCallCapacityManagementGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAddSupervisorListRequest(OCIRequest):
    """
    Add supervisor(s) to a call center.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAgentThresholdProfileAddRequest(OCIRequest):
    """
    Add a new Call Center Agent Threshold Profile in a Group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_description",
            "profileDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_yellow",
            "thresholdAverageBusyInTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_red",
            "thresholdAverageBusyInTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_yellow",
            "thresholdAverageBusyOutTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_red",
            "thresholdAverageBusyOutTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_yellow",
            "thresholdAverageWrapUpTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_red",
            "thresholdAverageWrapUpTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_notification_email",
            "enableNotificationEmail",
            bool,
            False,
            True,
            False,
        ),
        E(
            "notification_email_address",
            "notificationEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* profileDescription
    profile_description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeYellow
    threshold_current_call_state_idle_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeRed
    threshold_current_call_state_idle_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeYellow
    threshold_current_call_state_on_call_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeRed
    threshold_current_call_state_on_call_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeYellow
    threshold_current_agent_state_unavailable_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeRed
    threshold_current_agent_state_unavailable_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeYellow
    threshold_average_busy_in_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeRed
    threshold_average_busy_in_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeYellow
    threshold_average_busy_out_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeRed
    threshold_average_busy_out_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeYellow
    threshold_average_wrap_up_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeRed
    threshold_average_wrap_up_time_red = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableNotificationEmail
    enable_notification_email = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* notificationEmailAddress
    notification_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAgentThresholdProfileGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Threshold Profiles in the Group.
    The response is either ``GroupCallCenterAgentThresholdProfileGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAgentUnavailableCodeAddRequest(OCIRequest):
    """
    Add a Call Center Agent Unavailable Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class GroupCallCenterAgentUnavailableCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Agent Unavailable Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAgentUnavailableCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Unavailable Codes.
    The response is either ``GroupCallCenterAgentUnavailableCodeGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAgentUnavailableCodeGetRequest(OCIRequest):
    """
    Get a Call Center Agent Unavailable Code.
    The response is either ``GroupCallCenterAgentUnavailableCodeGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterAgentUnavailableCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Agent Unavailable Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterBouncedCallGetRequest(OCIRequest):
    """
    Get a call center's bounced call settings.
    The response is either a ``GroupCallCenterBouncedCallGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By ``GroupCallCenterBouncedCallGetRequest17()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterBouncedCallGetRequest17(OCIRequest):
    """
    Get a call center's bounced call settings.
    The response is either a ``GroupCallCenterBouncedCallGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterBouncedCallModifyRequest(OCIRequest):
    """
    Modify a call center's bounced call settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_rings_before_bouncing_call",
            "numberOfRingsBeforeBouncingCall",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_transfer",
            "enableTransfer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "bounce_call_when_agent_unavailable",
            "bounceCallWhenAgentUnavailable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_call_center_call_on_hold",
            "alertCallCenterCallOnHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_call_center_call_on_hold_seconds",
            "alertCallCenterCallOnHoldSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "bounce_call_center_call_on_hold",
            "bounceCallCenterCallOnHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bounce_call_center_call_on_hold_seconds",
            "bounceCallCenterCallOnHoldSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfRingsBeforeBouncingCall
    number_of_rings_before_bouncing_call = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableTransfer
    enable_transfer = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* bounceCallWhenAgentUnavailable
    bounce_call_when_agent_unavailable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertCallCenterCallOnHold
    alert_call_center_call_on_hold = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* alertCallCenterCallOnHoldSeconds
    alert_call_center_call_on_hold_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* bounceCallCenterCallOnHold
    bounce_call_center_call_on_hold = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* bounceCallCenterCallOnHoldSeconds
    bounce_call_center_call_on_hold_seconds = Field(
        type=int,
        required=False,
    )


class GroupCallCenterCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class GroupCallCenterCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Call Disposition  Codes.
    The response is either ``GroupCallCenterCallDispositionCodeGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Call Center Call Disposition Code.
    The response is either ``GroupCallCenterCallDispositionCodeGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterCallDispositionCodeGetUsageListRequest(OCIRequest):
    """
    Get the list of Call Centers and Route Points using the specified disposition code.
    The response is either ``GroupCallCenterCallDispositionCodeGetUsageListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class GroupCallCenterComfortMessageBypassGetRequest(OCIRequest):
    """
    Get a call center's comfort message bypass settings.
    The response is either a ``GroupCallCenterComfortMessageBypassGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterComfortMessageBypassGetRequest17(OCIRequest):
    """
    Get a call center's comfort message bypass settings.
    The response is either a ``GroupCallCenterComfortMessageBypassGetResponse17()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterComfortMessageBypassGetRequest20(OCIRequest):
    """
    Get a call center's comfort message bypass settings.
    The response is either a ``GroupCallCenterComfortMessageBypassGetResponse20()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterDeleteAgentListRequest(OCIRequest):
    """
    Delete agent(s) from a call center.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterDeleteInstanceRequest(OCIRequest):
    """
    Delete a Call Center instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterDeleteSupervisorListRequest(OCIRequest):
    """
    Delete supervisor(s) from a call center.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterDistinctiveRingingGetRequest(OCIRequest):
    """
    Get the distinctive ringing configuration values for call center.
    The response is either a ``GroupCallCenterDistinctiveRingingGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterDistinctiveRingingModifyRequest(OCIRequest):
    """
    Modify the distinctive ringing configuration values for call center.

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

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "distinctive_ringing_call_center_calls",
            "distinctiveRingingCallCenterCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "distinctive_ringing_ring_pattern_for_call_center",
            "distinctiveRingingRingPatternForCallCenter",
            str,
            False,
            False,
            False,
        ),
        E(
            "distinctive_ringing_force_delivery_ring_pattern",
            "distinctiveRingingForceDeliveryRingPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* distinctiveRingingCallCenterCalls
    distinctive_ringing_call_center_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* distinctiveRingingRingPatternForCallCenter
    distinctive_ringing_ring_pattern_for_call_center = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* distinctiveRingingForceDeliveryRingPattern
    distinctive_ringing_force_delivery_ring_pattern = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )


class GroupCallCenterEnhancedReportingBrandingGetRequest(OCIRequest):
    """
    Request to get the group branding information.
    The response is either ``GroupCallCenterEnhancedReportingBrandingGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterEnhancedReportingGetAvailableReportTemplateListRequest(OCIRequest):
    """
    Request to get all enabled call center report template for a group.
    The response is either a ``GroupCallCenterEnhancedReportingGetAvailableReportTemplateListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterEnhancedReportingGetRequest19(OCIRequest):
    """
    Request to get a group level call center enhanced reporting setting.
    The response is either a ``GroupCallCenterEnhancedReportingGetResponse19()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reporting_server",
            "reportingServer",
            str,
            False,
            False,
            False,
        ),
        E(
            "web_statistic_source",
            "webStatisticSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reportingServer
    reporting_server = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* webStatisticSource
    web_statistic_source = Field(
        type=str,
        required=False,
    )


class GroupCallCenterEnhancedReportingModifyRequest19(OCIRequest):
    """
    Request to modify group level call center enhanced reporting settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reporting_server",
            "reportingServer",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reportingServer
    reporting_server = Field(
        type=str,
        required=False,
    )


class GroupCallCenterEnhancedReportingReportTemplateDeleteRequest(OCIRequest):
    """
    Request to delete a group level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterEnhancedReportingReportTemplateGetListRequest(OCIRequest):
    """
    Request to get group level call center report template list.
    The response is either a ``GroupCallCenterEnhancedReportingReportTemplateGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterEnhancedReportingReportTemplateGetRequest(OCIRequest):
    """
    Request to get a group level call center report template.
    The response is either a ``GroupCallCenterEnhancedReportingReportTemplateGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterEnhancedReportingScheduledReportDeleteRequest(OCIRequest):
    """
    Request to delete a group level call center reporting scheduled report.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterEnhancedReportingScheduledReportGetRequest(OCIRequest):
    """
    Request to get a group level call center reporting scheduled report.
    The response is either a ``GroupCallCenterEnhancedReportingScheduledReportGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallCenterForcedForwardingGetRequest(OCIRequest):
    """
    Get a call center's forced forwarding settings.
    The response is either a ``GroupCallCenterForcedForwardingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterForcedForwardingGetRequest17(OCIRequest):
    """
    Get a call center's forced forwarding settings.
    The response is either a ``GroupCallCenterForcedForwardingGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterForcedForwardingGetRequest20(OCIRequest):
    """
    Get a call center's forced forwarding settings.
    The response is either a ``GroupCallCenterForcedForwardingGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest14sp6(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse14sp6()`` or an
    ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetAnnouncementRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest16(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest17(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse17()`` or an
    ``ErrorResponse()``.

    Replaced by ``GroupCallCenterGetAnnouncementRequest17sp4()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest17sp4(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse17sp4()`` or an
    ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetAnnouncementRequest19()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest19(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse19()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetAnnouncementRequest20(OCIRequest):
    """
    Get a call center's announcement settings.
    The response is either a ``GroupCallCenterGetAnnouncementResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetDNISListRequest(OCIRequest):
    """
    Get a list of DNIS that are configured for a Call Center.
    The response is either ``GroupCallCenterGetDNISListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetDistinctiveRingingRequest(OCIRequest):
    """
    Get the distinctive ringing configuration values for call center.
    The response is either a ``GroupCallCenterGetDistinctiveRingingResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )


class GroupCallCenterGetInstanceQueueStatusRequest(OCIRequest):
    """
    Get Call Center queue status.
    The response is either ``GroupCallCenterGetInstanceQueueStatusResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse14()`` or ``ErrorResponse()``.
    Replaced By ``GroupCallCenterGetInstanceRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest14sp3(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse14sp3()`` or
    ``ErrorResponse()``.
    Replaced By ``GroupCallCenterGetInstanceRequest14sp9()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest14sp9(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse14sp9()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetInstanceRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest16(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse16()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest17sp1(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse17sp1()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetInstanceRequest17sp3()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse17sp3()`` or
    ``ErrorResponse()``.

    Replaced by ``GroupCallCenterGetInstanceRequest19()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse19()`` or ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Call Center instance.
    The response is either ``GroupCallCenterGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceStatisticsReportingRequest(OCIRequest):
    """
    Request to get the call center statistics reporting settings.
    The response is either ``GroupCallCenterGetInstanceStatisticsReportingResponse()``
    or ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetInstanceStatisticsReportingRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceStatisticsReportingRequest16(OCIRequest):
    """
    Request to get the call center statistics reporting settings.
    The response is either ``GroupCallCenterGetInstanceStatisticsReportingResponse16()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceStatisticsReportingRequest17sp1(OCIRequest):
    """
    Request to get the call center statistics reporting settings.
    The response is either ``GroupCallCenterGetInstanceStatisticsReportingResponse17sp1()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetInstanceStatisticsRequest13mp8(OCIRequest):
    """
    Get Call Center queue and agent statistics.
    The response is either ``GroupCallCenterGetInstanceStatisticsResponse13mp8()`` or
    ``ErrorResponse()``.
    Replaced By ``GroupCallCenterGetInstanceStatisticsRequest14sp9()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetRequest(OCIRequest):
    """
    Request the Group level data associated with Call Center.
    The response is either a ``GroupCallCenterGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced by ``GroupCallCenterGetRequest17sp4()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetRequest17sp4(OCIRequest):
    """
    Request the Group level data associated with Call Center.
    The response is either a ``GroupCallCenterGetResponse17sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetRoutingPolicyRequest(OCIRequest):
    """
    Request the group call center routing policy.
    The response is either a ``GroupCallCenterGetRoutingPolicyResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterGetSupervisorListRequest16(OCIRequest):
    """
    Get a list of supervisors assigned to a call center.
    The response is either a
    ``GroupCallCenterGetSupervisorListResponse16()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_center_type",
            "callCenterType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callCenterType
    call_center_type = Field(
        type=str,
        required=True,
    )


class GroupCallCenterHolidayServiceGetRequest(OCIRequest):
    """
    Get a call center's holiday service settings.
    The response is either a ``GroupCallCenterHolidayServiceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterHolidayServiceGetRequest17(OCIRequest):
    """
    Get a call center's holiday service settings.
    The response is either a ``GroupCallCenterHolidayServiceGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterHolidayServiceGetRequest17sp1(OCIRequest):
    """
    Get a call center's holiday service settings.
    The response is either a ``GroupCallCenterHolidayServiceGetResponse17sp1()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterHolidayServiceGetRequest20(OCIRequest):
    """
    Get a call center's holiday service settings.
    The response is either a ``GroupCallCenterHolidayServiceGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterModifyDNISParametersRequest(OCIRequest):
    """
    Modify the setting that are configured for all the DNIS in a Call Center.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "display_dnis_number",
            "displayDNISNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "display_dnis_name",
            "displayDNISName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "promote_calls_from_priority1to0",
            "promoteCallsFromPriority1to0",
            bool,
            False,
            False,
            False,
        ),
        E(
            "promote_calls_from_priority2to1",
            "promoteCallsFromPriority2to1",
            bool,
            False,
            False,
            False,
        ),
        E(
            "promote_calls_from_priority3to2",
            "promoteCallsFromPriority3to2",
            bool,
            False,
            False,
            False,
        ),
        E(
            "promote_calls_from_priority1to0_seconds",
            "promoteCallsFromPriority1to0Seconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "promote_calls_from_priority2to1_seconds",
            "promoteCallsFromPriority2to1Seconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "promote_calls_from_priority3to2_seconds",
            "promoteCallsFromPriority3to2Seconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* displayDNISNumber
    display_dnis_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* displayDNISName
    display_dnis_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* promoteCallsFromPriority1to0
    promote_calls_from_priority1to0 = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* promoteCallsFromPriority2to1
    promote_calls_from_priority2to1 = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* promoteCallsFromPriority3to2
    promote_calls_from_priority3to2 = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* promoteCallsFromPriority1to0Seconds
    promote_calls_from_priority1to0_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* promoteCallsFromPriority2to1Seconds
    promote_calls_from_priority2to1_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* promoteCallsFromPriority3to2Seconds
    promote_calls_from_priority3to2_seconds = Field(
        type=int,
        required=False,
    )


class GroupCallCenterModifyDistinctiveRingingRequest(OCIRequest):
    """
    Modify the distinctive ringing configuration values for call center.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "distinctive_ringing_call_center_calls",
            "distinctiveRingingCallCenterCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "distinctive_ringing_ring_pattern_for_call_center",
            "distinctiveRingingRingPatternForCallCenter",
            str,
            False,
            False,
            False,
        ),
        E(
            "distinctive_ringing_force_delivery_ring_pattern",
            "distinctiveRingingForceDeliveryRingPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* distinctiveRingingCallCenterCalls
    distinctive_ringing_call_center_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* distinctiveRingingRingPatternForCallCenter
    distinctive_ringing_ring_pattern_for_call_center = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* distinctiveRingingForceDeliveryRingPattern
    distinctive_ringing_force_delivery_ring_pattern = Field(
        type=str,
        required=False,
    )


class GroupCallCenterModifyInstanceStatisticsReportingRequest(OCIRequest):
    """
    Modify the Call Center statistics reporting frequency and destination.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``GroupCallCenterModifyInstanceStatisticsReportingRequest14sp9()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "clear_today_statistics",
            "clearTodayStatistics",
            bool,
            False,
            False,
            False,
        ),
        E(
            "generate_daily_report",
            "generateDailyReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collection_period_minutes",
            "collectionPeriodMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "reporting_email_address1",
            "reportingEmailAddress1",
            str,
            False,
            False,
            False,
        ),
        E(
            "reporting_email_address2",
            "reportingEmailAddress2",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* clearTodayStatistics
    clear_today_statistics = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* generateDailyReport
    generate_daily_report = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* collectionPeriodMinutes
    collection_period_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* reportingEmailAddress1
    reporting_email_address1 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportingEmailAddress2
    reporting_email_address2 = Field(
        type=str,
        required=False,
    )


class GroupCallCenterModifyInstanceStatisticsReportingRequest14sp9(OCIRequest):
    """
    Modify the Call Center statistics reporting frequency and destination.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "generate_daily_report",
            "generateDailyReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collection_period_minutes",
            "collectionPeriodMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "reporting_email_address1",
            "reportingEmailAddress1",
            str,
            False,
            False,
            False,
        ),
        E(
            "reporting_email_address2",
            "reportingEmailAddress2",
            str,
            False,
            False,
            False,
        ),
        E(
            "statistics_source",
            "statisticsSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* generateDailyReport
    generate_daily_report = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* collectionPeriodMinutes
    collection_period_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* reportingEmailAddress1
    reporting_email_address1 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportingEmailAddress2
    reporting_email_address2 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* statisticsSource
    statistics_source = Field(
        type=str,
        required=False,
    )


class GroupCallCenterModifyInstanceStatisticsReportingRequest17sp1(OCIRequest):
    """
    Modify the Call Center statistics reporting frequency and destination.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "generate_daily_report",
            "generateDailyReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collection_period_minutes",
            "collectionPeriodMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "reporting_email_address1",
            "reportingEmailAddress1",
            str,
            False,
            False,
            False,
        ),
        E(
            "reporting_email_address2",
            "reportingEmailAddress2",
            str,
            False,
            False,
            False,
        ),
        E(
            "statistics_source",
            "statisticsSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* generateDailyReport
    generate_daily_report = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* collectionPeriodMinutes
    collection_period_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* reportingEmailAddress1
    reporting_email_address1 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportingEmailAddress2
    reporting_email_address2 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* statisticsSource
    statistics_source = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_default_guard_timer",
            "useSystemDefaultGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useSystemDefaultGuardTimer
    use_system_default_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultUnavailableSettings
    use_system_default_unavailable_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnDNDActivation
    force_agent_unavailable_on_dnd_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnPersonalCalls
    force_agent_unavailable_on_personal_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnBouncedCallLimit
    force_agent_unavailable_on_bounced_call_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberConsecutiveBouncedCallsToForceAgentUnavailable
    number_consecutive_bounced_calls_to_force_agent_unavailable = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnNotReachable
    force_agent_unavailable_on_not_reachable = Field(
        type=bool,
        required=False,
    )


class GroupCallCenterNightServiceGetRequest(OCIRequest):
    """
    Get a call center's night service settings.
    The response is either a ``GroupCallCenterNightServiceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterNightServiceGetRequest17(OCIRequest):
    """
    Get a call center's night service settings.
    The response is either a ``GroupCallCenterNightServiceGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterNightServiceGetRequest17sp1(OCIRequest):
    """
    Get a call center's night service settings.
    The response is either a ``GroupCallCenterNightServiceGetResponse17sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterNightServiceGetRequest20(OCIRequest):
    """
    Get a call center's night service settings.
    The response is either a ``GroupCallCenterNightServiceGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterOverflowGetRequest(OCIRequest):
    """
    Get a call center's overflow settings.
    The response is either a ``GroupCallCenterOverflowGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterOverflowGetRequest17(OCIRequest):
    """
    Get a call center's overflow settings.
    The response is either a ``GroupCallCenterOverflowGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterOverflowGetRequest20(OCIRequest):
    """
    Get a call center's overflow settings.
    The response is either a ``GroupCallCenterOverflowGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterQueueCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class GroupCallCenterQueueCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterQueueCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Level and Organization Level Call Disposition Codes.
    The response is either ``GroupCallCenterQueueCallDispositionCodeGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterQueueCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Call Center Call Disposition Code.
    The response is either ``GroupCallCenterQueueCallDispositionCodeGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCallCenterQueueCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterQueueStatusNotificationGetRequest(OCIRequest):
    """
    Get the status configuration for a given call center.
    The response is either a ``GroupCallCenterQueueStatusNotificationGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterQueueStatusNotificationModifyRequest(OCIRequest):
    """
    Set the status configuration for a given call center.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_queue_status_notification",
            "enableQueueStatusNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_queue_depth_threshold",
            "enableQueueDepthThreshold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_waiting_time_threshold",
            "enableWaitingTimeThreshold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_calls_threshold",
            "numberOfCallsThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "waiting_time_of_calls_threshold",
            "waitingTimeOfCallsThreshold",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableQueueStatusNotification
    enable_queue_status_notification = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableQueueDepthThreshold
    enable_queue_depth_threshold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableWaitingTimeThreshold
    enable_waiting_time_threshold = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfCallsThreshold
    number_of_calls_threshold = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* waitingTimeOfCallsThreshold
    waiting_time_of_calls_threshold = Field(
        type=int,
        required=False,
    )


class GroupCallCenterQueueThresholdsGetRequest(OCIRequest):
    """
    Get a call center's queue Thresholds settings.
    The response is either a ``GroupCallCenterQueueThresholdsGetRequest()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterStrandedCallGetRequest(OCIRequest):
    """
    Get a call center's stranded call settings.
    The response is either a ``GroupCallCenterStrandedCallGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterStrandedCallGetRequest17(OCIRequest):
    """
    Get a call center's stranded call settings.
    The response is either a ``GroupCallCenterStrandedCallGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterStrandedCallGetRequest20(OCIRequest):
    """
    Get a call center's stranded call settings.
    The response is either a ``GroupCallCenterStrandedCallGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterStrandedCallUnavailableGetRequest(OCIRequest):
    """
    Get a call center's stranded calls - unavailable settings.
    The response is either a ``GroupCallCenterStrandedCallUnavailableGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallCenterStrandedCallUnavailableGetRequest20(OCIRequest):
    """
    Get a call center's stranded calls - unavailable settings.
    The response is either a ``GroupCallCenterStrandedCallUnavailableGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCallParkAddInstanceRequest(OCIRequest):
    """
    Adds a Call Park group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
        E(
            "recall_alternate_user_id",
            "recallAlternateUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "recall_to",
            "recallTo",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recallAlternateUserId
    recall_alternate_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Required* recallTo
    recall_to = Field(
        type=str,
        required=True,
    )


class GroupCallParkDeleteInstanceRequest(OCIRequest):
    """
    Deletes a Call Park group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallParkGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Call Park group instances within a group.
    The response is either ``GroupCallParkGetInstanceListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallParkGetInstanceRequest(OCIRequest):
    """
    Gets a Call Park group.
    The response is either ``GroupCallParkGetInstanceResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallParkGetInstanceRequest16sp2(OCIRequest):
    """
    Gets a Call Park group.
    The response is either ``GroupCallParkGetInstanceResponse16sp2()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallParkGetRequest(OCIRequest):
    """
    Gets the Call Park Group settings.
    The response is either ``GroupCallParkGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallParkGetRequest16sp2(OCIRequest):
    """
    Gets the Call Park Group settings.
    The response is either ``GroupCallParkGetResponse16sp2()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "recall_timer_seconds",
            "recallTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "display_timer_seconds",
            "displayTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_destination_announcement",
            "enableDestinationAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "recall_alternate_user_id",
            "recallAlternateUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "recall_ring_pattern",
            "recallRingPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "recall_to",
            "recallTo",
            str,
            False,
            False,
            False,
        ),
        E(
            "alternate_user_recall_timer_seconds",
            "alternateUserRecallTimerSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* recallTimerSeconds
    recall_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* displayTimerSeconds
    display_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableDestinationAnnouncement
    enable_destination_announcement = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* recallAlternateUserId
    recall_alternate_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recallRingPattern
    recall_ring_pattern = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recallTo
    recall_to = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* alternateUserRecallTimerSeconds
    alternate_user_recall_timer_seconds = Field(
        type=int,
        required=False,
    )


class GroupCallPickupAddInstanceRequest(OCIRequest):
    """
    Adds a Call Pickup group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=False,
    )


class GroupCallPickupDeleteInstanceRequest(OCIRequest):
    """
    Deletes a Call Pickup group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallPickupGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Call Pickup instances within a group.
    The response is either ``GroupCallPickupGetInstanceListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallPickupGetInstanceRequest(OCIRequest):
    """
    Gets a Call Pickup group.
    The response is either ``GroupCallPickupGetInstanceResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.
    The response is either a ``GroupCallProcessingGetPolicyResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallProcessingGetPolicyRequest14sp1(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.
    The response is either a ``GroupCallProcessingGetPolicyResponse14sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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)
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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)
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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)
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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)
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_setting",
            "useGroupSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupSetting
    use_group_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
    override_clid_restriction_for_external_calls_via_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_clid_setting",
            "useGroupCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_media_setting",
            "useGroupMediaSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_call_limits_setting",
            "useGroupCallLimitsSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_translation_routing_setting",
            "useGroupTranslationRoutingSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupCLIDSetting
    use_group_clid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupMediaSetting
    use_group_media_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupCallLimitsSetting
    use_group_call_limits_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupTranslationRoutingSetting
    use_group_translation_routing_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
    override_clid_restriction_for_external_calls_via_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_setting",
            "useGroupSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupSetting
    use_group_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_clid_setting",
            "useGroupCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_media_setting",
            "useGroupMediaSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_call_limits_setting",
            "useGroupCallLimitsSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_translation_routing_setting",
            "useGroupTranslationRoutingSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_dclid_setting",
            "useGroupDCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_calls_clid_policy",
            "groupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupCLIDSetting
    use_group_clid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupMediaSetting
    use_group_media_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupCallLimitsSetting
    use_group_call_limits_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupTranslationRoutingSetting
    use_group_translation_routing_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupDCLIDSetting
    use_group_dclid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupCallsCLIDPolicy
    group_calls_clid_policy = Field(
        type=str,
        required=False,
    )


class GroupCallRecordingGetRequest(OCIRequest):
    """
    Get the Call Recording platform for a group.
    The response is either a ``GroupCallRecordingGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallRecordingModifyRequest(OCIRequest):
    """
    Modify the Call Recording platform assignment for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* name
    name = Field(
        type=str,
        required=False,
    )


class GroupCallingLineIdGetRequest(OCIRequest):
    """
    Get the calling line id settings for a group.
    The response is either a ``GroupCallingLineIdGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCallingLineIdModifyRequest(OCIRequest):
    """
    Modify the calling line id settings for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_number",
            "useGroupNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupNumber
    use_group_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )


class GroupCallingPlanAddDigitPatternRequest(OCIRequest):
    """
    Add a new calling plan digit string.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )


class GroupCallingPlanDeleteDigitPatternListRequest(OCIRequest):
    """
    Delete one or more calling plan digit strings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCallingPlanGetDigitPatternListRequest(OCIRequest):
    """
    Get the list of calling plan digit strings for a group.
    The response is either a ``GroupCallingPlanGetDigitPatternListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* digitPattern
    digit_pattern = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* departmentName
    department_name = Field(
        type=str,
        required=False,
    )


class GroupCollaborateBridgeGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a collaborate bridge.
    The response is either ``GroupCollaborateBridgeGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupCommPilotCallManagerGetRequest(OCIRequest):
    """
    Request the group level data associated with CommPilot Call Manager.
    The response is either a ``GroupCommPilotCallManagerGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCommPilotCallManagerModifyRequest(OCIRequest):
    """
    Modify the group level data associated with CommPilot Call Manager.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_directory",
            "groupDirectory",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDirectory
    group_directory = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )


class GroupCommonPhoneListModifyRequest(OCIRequest):
    """
    Modify an entry in a group's common phone list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_entry_name",
            "newEntryName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEntryName
    new_entry_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )


class GroupCommunicationBarringAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of Communication Barring Authorization codes from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupCommunicationBarringAuthorizationCodeGetListRequest(OCIRequest):
    """
    Get a list of Communication Barring Authorization Codes for a group.
    The response is either a ``GroupCommunicationBarringAuthorizationCodeGetListResponse()``
    or an ``ErorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCommunicationBarringGetRequest(OCIRequest):
    """
    Gets Communication Barring setting for a group.
    The response is either a ``GroupCommunicationBarringGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCommunicationBarringModifyRequest(OCIRequest):
    """
    Gets Communication Barring setting for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_default_service_provider_profile",
            "useDefaultServiceProviderProfile",
            bool,
            False,
            False,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useDefaultServiceProviderProfile
    use_default_service_provider_profile = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* profile
    profile = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCustomContactDirectoryAddRequest(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replace by: ``GroupCustomContactDirectoryAddRequest17()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=False,
    )


class GroupCustomContactDirectoryDeleteRequest(OCIRequest):
    """
    Deletes a Custom Contact Directory to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCustomContactDirectoryGetListRequest(OCIRequest):
    """
    Gets the list of Custom Contact Directories for a group.
    The response is either ``GroupCustomContactDirectoryGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCustomContactDirectoryGetRequest(OCIRequest):
    """
    Gets a Custom Contact Directory in a group.
    The response is either ``GroupCustomContactDirectoryGetResponse()`` or
    ``ErrorResponse()``.

    Replace by: ``GroupCustomContactDirectoryGetRequest17()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupCustomRingbackGroupGetRequest(OCIRequest):
    """
    Get the group's custom ring back service settings.
    The response is either a ``GroupCustomRingbackGroupGetResponse()`` or an
    ``ErrorResponse()``.
    Replaced By ``GroupCustomRingbackGroupGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCustomRingbackGroupGetRequest16(OCIRequest):
    """
    Get the group's custom ring back service settings.
    The response is either a ``GroupCustomRingbackGroupGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupCustomRingbackGroupGetRequest20(OCIRequest):
    """
    Get the group's custom ring back service settings.
    The response is either a ``GroupCustomRingbackGroupGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDeleteRequest(OCIRequest):
    """
    Delete a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDepartmentAdminDeleteRequest(OCIRequest):
    """
    Delete a group department administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupDepartmentAdminGetRequest(OCIRequest):
    """
    Get a group department administrators profile.
    The response is either a ``GroupDepartmentAdminGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )


class GroupDepartmentDeleteRequest(OCIRequest):
    """
    Delete a department from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_enterprise_departments",
            "includeEnterpriseDepartments",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeEnterpriseDepartments
    include_enterprise_departments = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_enterprise_departments",
            "includeEnterpriseDepartments",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeEnterpriseDepartments
    include_enterprise_departments = Field(
        type=bool,
        required=True,
    )


class GroupDepartmentGetRequest(OCIRequest):
    """
    Request the attributes of a department.
    The response is either a ``GroupDepartmentGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "count_only_reset_supported_device",
            "countOnlyResetSupportedDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* countOnlyResetSupportedDevice
    count_only_reset_supported_device = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "event_id",
            "eventId",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Required* eventId
    event_id = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class GroupDeviceTypeFileGetRequest(OCIRequest):
    """
    Request to get a group device type file.
    The response is either ``GroupDeviceTypeFileGetResponse()`` or ``ErrorResponse()``.
    Replaced By ``GroupDeviceTypeFileGetRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )


class GroupDeviceTypeFileGetRequest14sp8(OCIRequest):
    """
    Request to get a group device type file.
    The response is either ``GroupDeviceTypeFileGetResponse14sp8()`` or ``ErrorResponse()``.
    Replaced By ``GroupDeviceTypeFileGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class GroupDeviceTypeFileGetRequest16sp1(OCIRequest):
    """
    Request to get a group device type file.
    The response is either ``GroupDeviceTypeFileGetResponse16sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class GroupDialPlanPolicyAddAccessCodeRequest(OCIRequest):
    """
    Request to add a Group level Dial Plan Access Code and its all attribues.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_screening_services",
            "includeCodeForScreeningServices",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_secondary_dial_tone",
            "enableSecondaryDialTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeCodeForNetworkTranslationsAndRouting
    include_code_for_network_translations_and_routing = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeCodeForScreeningServices
    include_code_for_screening_services = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableSecondaryDialTone
    enable_secondary_dial_tone = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )


class GroupDialPlanPolicyGetAccessCodeListRequest(OCIRequest):
    """
    Request the Group level data associated with Dial Plan Policy.
    The response is either a ``GroupDialPlanPolicyGetAccessCodeListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDialPlanPolicyGetRequest17(OCIRequest):
    """
    Request the Group level data associated with Dial Plan Policy.
    The response is either a ``GroupDialPlanPolicyGetResponse17()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDialPlanPolicyModifyAccessCodeRequest(OCIRequest):
    """
    Request to modify a Group level Dial Plan Access Code and its attribues.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_code_for_screening_services",
            "includeCodeForScreeningServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_secondary_dial_tone",
            "enableSecondaryDialTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* includeCodeForNetworkTranslationsAndRouting
    include_code_for_network_translations_and_routing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeCodeForScreeningServices
    include_code_for_screening_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableSecondaryDialTone
    enable_secondary_dial_tone = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class GroupDialPlanPolicyModifyRequest(OCIRequest):
    """
    Modify the Group level data associated with Dial Plan Policy.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_setting",
            "useSetting",
            str,
            False,
            False,
            False,
        ),
        E(
            "requires_access_code_for_public_calls",
            "requiresAccessCodeForPublicCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_e164_public_calls",
            "allowE164PublicCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefer_e164_number_format_for_callback_services",
            "preferE164NumberFormatForCallbackServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "public_digit_map",
            "publicDigitMap",
            str,
            False,
            False,
            False,
        ),
        E(
            "private_digit_map",
            "privateDigitMap",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useSetting
    use_setting = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* requiresAccessCodeForPublicCalls
    requires_access_code_for_public_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowE164PublicCalls
    allow_e164_public_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* preferE164NumberFormatForCallbackServices
    prefer_e164_number_format_for_callback_services = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* publicDigitMap
    public_digit_map = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* privateDigitMap
    private_digit_map = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchCallType
    match_call_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=True,
    )


class GroupDialableCallerIDCriteriaDeleteRequest(OCIRequest):
    """
    Delete a Dialable Caller ID Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupDialableCallerIDCriteriaGetRequest(OCIRequest):
    """
    Get an existing Dialable Caller ID Criteria.
    The response is either a
    ``GroupDialableCallerIDCriteriaGetRequest()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupDialableCallerIDGetRequest(OCIRequest):
    """
    Get the Group’s Dialable Caller ID settings and criteria list.
    The response is either a
    ``GroupDialableCallerIDGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDigitCollectionGetRequest13mp4(OCIRequest):
    """
    Request the group's digit collection attributes.
    The response is either a ``GroupDigitCollectionGetResponse13mp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDigitCollectionModifyRequest(OCIRequest):
    """
    Modifies the group's digit collection attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_setting",
            "useSetting",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "public_digit_map",
            "publicDigitMap",
            str,
            False,
            False,
            False,
        ),
        E(
            "private_digit_map",
            "privateDigitMap",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useSetting
    use_setting = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessCode
    access_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* publicDigitMap
    public_digit_map = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* privateDigitMap
    private_digit_map = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDomainAssignListRequest(OCIRequest):
    """
    Assign a list of domains to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


class GroupDomainGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all domains assigned to a group.
    The response is either ``GroupDomainGetAssignedListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupDomainUnassignListRequest(OCIRequest):
    """
    Unassign a list of domains from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


class GroupEmergencyZonesGetHomeZoneListRequest(OCIRequest):
    """
    Request the group level data associated with Emergency Zones.
    The response is either a ``GroupEmergencyZonesGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupEmergencyZonesGetRequest(OCIRequest):
    """
    Request the group level data associated with Emergency Zones.
    The response is either a ``GroupEmergencyZonesGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupEmergencyZonesModifyHomeZoneListRequest(OCIRequest):
    """
    Modify a list of home zones and/or home zone ranges.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_ip_address_list",
            "homeZoneIpAddressList",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "home_zone_ip_address_range_list",
            "homeZoneIpAddressRangeList",
            str,
            True,
            False,
            False,
        ),  # unknown
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* homeZoneIpAddressList
    home_zone_ip_address_list = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* homeZoneIpAddressRangeList
    home_zone_ip_address_range_list = Field(
        type=str,
        required=False,
    )


class GroupEmergencyZonesModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Emergency Zones.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "emergency_zones_prohibition",
            "emergencyZonesProhibition",
            str,
            False,
            False,
            False,
        ),
        E(
            "send_emergency_call_notify_email",
            "sendEmergencyCallNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "emergency_call_notify_email_address",
            "emergencyCallNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* emergencyZonesProhibition
    emergency_zones_prohibition = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* sendEmergencyCallNotifyEmail
    send_emergency_call_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* emergencyCallNotifyEmailAddress
    emergency_call_notify_email_address = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "maximum_reroute_attempts",
            "maximumRerouteAttempts",
            int,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_action",
            "routeExhaustionAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_forward_address",
            "routeExhaustionForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ordered_routing",
            "orderedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "priority_weighted_routing",
            "priorityWeightedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maximumRerouteAttempts
    maximum_reroute_attempts = Field(
        type=int,
        required=True,
    )
    #: str: *Required* routeExhaustionAction
    route_exhaustion_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routeExhaustionForwardAddress
    route_exhaustion_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Required* orderedRouting
    ordered_routing = Field(
        type=str,
        required=True,
    )
    #: str: *Required* priorityWeightedRouting
    priority_weighted_routing = Field(
        type=str,
        required=True,
    )


class GroupEnterpriseTrunkAddRequest21(OCIRequest):
    """
    Request to add an enterprise trunk in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "maximum_reroute_attempts",
            "maximumRerouteAttempts",
            int,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_action",
            "routeExhaustionAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_exhaustion_forward_address",
            "routeExhaustionForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ordered_routing",
            "orderedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "priority_weighted_routing",
            "priorityWeightedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "enable_capacity_management",
            "enableCapacityManagement",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maximumRerouteAttempts
    maximum_reroute_attempts = Field(
        type=int,
        required=True,
    )
    #: str: *Required* routeExhaustionAction
    route_exhaustion_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routeExhaustionForwardAddress
    route_exhaustion_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Required* orderedRouting
    ordered_routing = Field(
        type=str,
        required=True,
    )
    #: str: *Required* priorityWeightedRouting
    priority_weighted_routing = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableCapacityManagement
    enable_capacity_management = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )


class GroupEnterpriseTrunkAddUserListRequest(OCIRequest):
    """
    Request to add users to an enterprise trunk in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupEnterpriseTrunkDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise trunk in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )


class GroupEnterpriseTrunkDeleteUserListRequest(OCIRequest):
    """
    Request to delete users from an enterprise trunk in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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

    Replaced By ``GroupEnterpriseTrunkGetRequest21()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )


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

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )


class GroupEnterpriseTrunkModifyRequest(OCIRequest):
    """
    Request to modify an enterprise trunk in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_enterprise_trunk_name",
            "newEnterpriseTrunkName",
            str,
            False,
            False,
            False,
        ),
        E(
            "maximum_reroute_attempts",
            "maximumRerouteAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "route_exhaustion_action",
            "routeExhaustionAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_exhaustion_forward_address",
            "routeExhaustionForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ordered_routing",
            "orderedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "priority_weighted_routing",
            "priorityWeightedRouting",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "enable_capacity_management",
            "enableCapacityManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEnterpriseTrunkName
    new_enterprise_trunk_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maximumRerouteAttempts
    maximum_reroute_attempts = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* routeExhaustionAction
    route_exhaustion_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* routeExhaustionForwardAddress
    route_exhaustion_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Required* orderedRouting
    ordered_routing = Field(
        type=str,
        required=True,
    )
    #: str: *Required* priorityWeightedRouting
    priority_weighted_routing = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableCapacityManagement
    enable_capacity_management = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )


class GroupExchangeIntegrationGetRequest(OCIRequest):
    """
    Request the group level configuration for Exchange Integration.
    The response is either a ``GroupExchangeIntegrationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=False,
    )


class GroupExtensionLengthGetRequest(OCIRequest):
    """
    Request the group's extension length.
    The response is either a ``GroupExtensionLengthGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupExtensionLengthGetRequest17(OCIRequest):
    """
    Request the group's extension length.
    The response is either a ``GroupExtensionLengthGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupExtensionLengthModifyRequest(OCIRequest):
    """
    Modify the group's extension length.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "extension_length",
            "extensionLength",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* extensionLength
    extension_length = Field(
        type=int,
        required=False,
    )


class GroupExtensionLengthModifyRequest17(OCIRequest):
    """
    Modify the group's extension length range.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "min_extension_length",
            "minExtensionLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_extension_length",
            "maxExtensionLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "default_extension_length",
            "defaultExtensionLength",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* minExtensionLength
    min_extension_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxExtensionLength
    max_extension_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* defaultExtensionLength
    default_extension_length = Field(
        type=int,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupFileRepositoryDeviceUserAddRequest(OCIRequest):
    """
    Add a new group file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_put",
            "allowPut",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_delete",
            "allowDelete",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_get",
            "allowGet",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* password
    password = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allowPut
    allow_put = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowDelete
    allow_delete = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowGet
    allow_get = Field(
        type=bool,
        required=True,
    )


class GroupFileRepositoryDeviceUserDeleteRequest(OCIRequest):
    """
    Delete a group file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )


class GroupFileRepositoryDeviceUserModifyRequest(OCIRequest):
    """
    Modify a group file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_put",
            "allowPut",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_delete",
            "allowDelete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_get",
            "allowGet",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowPut
    allow_put = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDelete
    allow_delete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowGet
    allow_get = Field(
        type=bool,
        required=False,
    )


class GroupFindMeFollowMeAddAlertingGroupRequest(OCIRequest):
    """
    Add an alerting group to a Find-me/Follow-me instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_description",
            "alertingGroupDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_diversion_inhibitor",
            "useDiversionInhibitor",
            bool,
            False,
            True,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            True,
            False,
        ),
        E(
            "number_of_rings",
            "numberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* alertingGroupDescription
    alerting_group_description = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* useDiversionInhibitor
    use_diversion_inhibitor = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* numberOfRings
    number_of_rings = Field(
        type=int,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class GroupFindMeFollowMeDeleteAlertingGroupRequest(OCIRequest):
    """
    Delete an alerting group from a Find-me/Follow-me instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )


class GroupFindMeFollowMeDeleteAlertingGroupSelectiveCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the Find-me/Follow-me alerting group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class GroupFindMeFollowMeDeleteInstanceRequest(OCIRequest):
    """
    Delete a Find-me/Follow-me instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupFindMeFollowMeGetAlertingGroupListRequest(OCIRequest):
    """
    Get a list of Find-me/Follow-me alerting groups within a group.
    The response is either ``GroupFindMeFollowMeGetAlertingGroupListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupFindMeFollowMeGetAlertingGroupRequest(OCIRequest):
    """
    Request to get all the information of a Find-me/Follow-me alerting group.
    The response is either ``GroupFindMeFollowMeGetAlertingGroupResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupFindMeFollowMeGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Find-me/Follow-me instance.
    The response is either ``GroupFindMeFollowMeGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupFlexibleSeatingHostGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a flexible seating host instance.
    The response is either ``GroupFlexibleSeatingHostGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enforce_association_limit",
            "enforceAssociationLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "association_limit_hours",
            "associationLimitHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "access_level",
            "accessLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "remove_guest_association",
            "removeGuestAssociation",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enforceAssociationLimit
    enforce_association_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* associationLimitHours
    association_limit_hours = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* accessLevel
    access_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* removeGuestAssociation
    remove_guest_association = Field(
        type=bool,
        required=False,
    )


class GroupFlexibleSeatingHostRoutingPoliciesGetRequest(OCIRequest):
    """
    Get a flexible seating host’s routing policies
    The response is either a ``GroupFlexibleSeatingHostRoutingPoliciesGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupFlexibleSeatingHostRoutingPoliciesModifyRequest(OCIRequest):
    """
    Modify a flexible seating host’s routing policies
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_emergency_calls",
            "allowEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_calls_to_voice_portal",
            "allowCallsToVoicePortal",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* allowEmergencyCalls
    allow_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallsToVoicePortal
    allow_calls_to_voice_portal = Field(
        type=bool,
        required=False,
    )


class GroupGetDefaultRequest(OCIRequest):
    """
    Request the default profile for a group.
    The response is either a ``GroupGetDefaultResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class GroupGetRequest(OCIRequest):
    """
    Get the profile for a group.
    The response is either a ``GroupGetResponse()`` or an ``ErrorResponse()``.
    Replaced By ``GroupGetRequest14sp7()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupGetRequest14sp7(OCIRequest):
    """
    Get the profile for a group.
    The response is either a ``GroupGetResponse14sp7()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupGetUserServiceAssignedUserListRequest(OCIRequest):
    """
    Get the list of users assigned the user service or service pack.
    The response is either a ``GroupGetUserServiceAssignedUserListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )


class GroupGroupNightForwardingGetRequest(OCIRequest):
    """
    Request to get the Group Night Forwarding group parameters.
    The response is either ``GroupGroupNightForwardingGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingAddOriginatorListRequest(OCIRequest):
    """
    Add originator(s) to a paging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "originator_user_id",
            "originatorUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* originatorUserId
    originator_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingAddTargetListRequest(OCIRequest):
    """
    Add target(s) to a paging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "target_user_id",
            "targetUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* targetUserId
    target_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingDeleteInstanceRequest(OCIRequest):
    """
    Delete a Group Paging instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingDeleteOriginatorListRequest(OCIRequest):
    """
    Delete originator(s) from a paging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "originator_user_id",
            "originatorUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* originatorUserId
    originator_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingDeleteTargetListRequest(OCIRequest):
    """
    Delete target(s) from a paging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "target_user_id",
            "targetUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* targetUserId
    target_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Group Paging instance.
    The response is either ``GroupGroupPagingGetInstanceResponse17sp3()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupGroupPagingGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Group Paging instance.
    The response is either ``GroupGroupPagingGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingGetOriginatorListRequest(OCIRequest):
    """
    Get a list of originators assigned to a paging group.
    The response is either a
    ``GroupGroupPagingGetOriginatorListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupGroupPagingGetTargetListRequest(OCIRequest):
    """
    Get a list of targets assigned to a paging group.
    The response is either a
    ``GroupGroupPagingGetTargetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "maximum_target_users",
            "maximumTargetUsers",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* maximumTargetUsers
    maximum_target_users = Field(
        type=int,
        required=False,
    )


class GroupHolidayScheduleDeleteRequest(OCIRequest):
    """
    Delete a holiday schedule from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )


class GroupHolidayScheduleGetListRequest(OCIRequest):
    """
    Get a holiday schedule in a group.
    The response is either a ``GroupHolidayScheduleGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupHolidayScheduleGetRequest(OCIRequest):
    """
    Get a holiday schedule in a group.
    The response is either a ``GroupHolidayScheduleGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupDeleteInstanceRequest(OCIRequest):
    """
    Delete a Hunt Group instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )


class GroupHuntGroupGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse14()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse17sp3()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupGetInstanceRequest17sp4(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse17sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse19()`` or ``ErrorResponse()``.

    Replaced By ``GroupHuntGroupGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Replaced By ``GroupHuntGroupGetInstanceRequest20()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupHuntGroupGetInstanceRequest20(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.
    The response is either ``GroupHuntGroupGetInstanceResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupIMRNGetListRequest(OCIRequest):
    """
    Request a summary table of all DNs in a group IMRN pool.
    The response is either ``GroupIMRNGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupIncomingCallingPlanGetListRequest(OCIRequest):
    """
    Request the group's incoming calling plan settings.
    The response is either a ``GroupIncomingCallingPlanGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupInstantGroupCallDeleteInstanceRequest(OCIRequest):
    """
    Request to delete an Instant Group Call service instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )


class GroupInstantGroupCallGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of an Instant Group Call service instance.
    The response is either ``GroupInstantGroupCallGetInstanceResponse14()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupInstantGroupCallGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of an Instant Group Call service instance.
    The response is either ``GroupInstantGroupCallGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupIntegratedIMPGetRequest(OCIRequest):
    """
    Get the Integrated IMP service attributes for the group.
    The response is either ``GroupIntegratedIMPGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupIntegratedIMPModifyRequest(OCIRequest):
    """
    Modify the Integrated IMP service attributes for the group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_service_provider_setting",
            "useServiceProviderSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "service_domain",
            "serviceDomain",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useServiceProviderSetting
    use_service_provider_setting = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* serviceDomain
    service_domain = Field(
        type=str,
        required=False,
    )


class GroupInterceptGroupGetRequest(OCIRequest):
    """
    Get the group's intercept group service settings.
    The response is either a ``GroupInterceptGroupGetResponse()`` or an ``ErrorResponse()``.
    Replaced By ``GroupInterceptGroupGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupInterceptGroupGetRequest16(OCIRequest):
    """
    Get the group's intercept group service settings.
    The response is either a ``GroupInterceptGroupGetResponse16()`` or an ``ErrorResponse()``.
    Replaced By ``GroupInterceptGroupGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupInterceptGroupGetRequest16sp1(OCIRequest):
    """
    Get the group's intercept group service settings.
    The response is either a ``GroupInterceptGroupGetResponse16sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupInventoryReportGetRequest(OCIRequest):
    """
    Request the group's inventory report.
    The response is either a ``GroupInventoryReportGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_users",
            "includeUsers",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_services",
            "includeServices",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dns",
            "includeDns",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_access_devices",
            "includeAccessDevices",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_departments",
            "includeDepartments",
            bool,
            False,
            True,
            False,
        ),
        E(
            "report_delivery_email_address",
            "reportDeliveryEmailAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeUsers
    include_users = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeServices
    include_services = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDns
    include_dns = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeAccessDevices
    include_access_devices = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDepartments
    include_departments = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* reportDeliveryEmailAddress
    report_delivery_email_address = Field(
        type=str,
        required=False,
    )


class GroupLDAPIntegrationGetDirectoryRequest(OCIRequest):
    """
    Get the LDAP directory attributes for a group.
    The response is either a ``GroupLDAPIntegrationGetDirectoryResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupLDAPIntegrationGetRequest(OCIRequest):
    """
    Request the group level data associated with LDAP Integration.
    The response is either a ``GroupLDAPIntegrationGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupLDAPIntegrationModifyDirectoryRequest(OCIRequest):
    """
    Modify the LDAP directory attributes for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_level",
            "useLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_net_address",
            "serverNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_base",
            "searchBase",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_ssl",
            "useSSL",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authenticated_dn",
            "authenticatedDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticated_password",
            "authenticatedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_sort_enabled",
            "isSortEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_paged_result_enabled",
            "isPagedResultEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_filter",
            "searchFilter",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_search_attribute_in_search_filter",
            "includeSearchAttributeInSearchFilter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "column1_attribute_name",
            "column1AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column2_attribute_name",
            "column2AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column3_attribute_name",
            "column3AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column4_attribute_name",
            "column4AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column1_label",
            "column1Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column2_label",
            "column2Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column3_label",
            "column3Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column4_label",
            "column4Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "search_column",
            "searchColumn",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useLevel
    use_level = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serverNetAddress
    server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* searchBase
    search_base = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSSL
    use_ssl = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticatedDN
    authenticated_dn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* authenticatedPassword
    authenticated_password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isSortEnabled
    is_sort_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isPagedResultEnabled
    is_paged_result_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* searchFilter
    search_filter = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* includeSearchAttributeInSearchFilter
    include_search_attribute_in_search_filter = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* column1AttributeName
    column1_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column2AttributeName
    column2_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column3AttributeName
    column3_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column4AttributeName
    column4_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column1Label
    column1_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column2Label
    column2_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column3Label
    column3_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column4Label
    column4_label = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* searchColumn
    search_column = Field(
        type=int,
        required=False,
    )


class GroupLDAPIntegrationModifyRequest(OCIRequest):
    """
    Modify the group level data associated with LDAP Integration.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class GroupMWIDeliveryToMobileEndpointCustomTemplateDeleteRequest(OCIRequest):
    """
    Delete a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )


class GroupMWIDeliveryToMobileEndpointCustomTemplateGetRequest(OCIRequest):
    """
    Request a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``GroupMWIDeliveryToMobileEndpointCustomTemplateGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )


class GroupMWIDeliveryToMobileEndpointGetRequest(OCIRequest):
    """
    Requests group MWI custom notifications settings.
    The response is either a ``GroupMWIDeliveryToMobileEndpointGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupMeetMeConferencingDeleteInstanceRequest(OCIRequest):
    """
    Delete a Meet-Me Conferencing bridge from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* departmentName
    department_name = Field(
        type=str,
        required=False,
    )


class GroupMeetMeConferencingGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.
    The response is either ``GroupMeetMeConferencingGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupMeetMeConferencingGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.
    The response is either ``GroupMeetMeConferencingGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupMeetMeConferencingGetInstanceRequest17sp4(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.
    The response is either ``GroupMeetMeConferencingGetInstanceResponse17sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupMeetMeConferencingGetInstanceRequest18(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.
    The response is either ``GroupMeetMeConferencingGetInstanceResponse18()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupMeetMeConferencingGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.
    The response is either ``GroupMeetMeConferencingGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupMeetMeConferencingGetRequest(OCIRequest):
    """
    Request the group level data associated with Meet-Me Conferencing functions.
    The response is either a ``GroupMeetMeConferencingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )


class GroupNetworkClassOfServiceGetAssignedListRequest(OCIRequest):
    """
    Get a list of Network Classes of Service assigned to a group.
    The response is either a ``GroupNetworkClassOfServiceGetAssignedListResponse()``
    or an ``ErorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupNetworkClassOfServiceModifyDefaultRequest(OCIRequest):
    """
    Modifies the default Network Classes of Service of a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )


class GroupNetworkClassOfServiceUnassignListRequest(OCIRequest):
    """
    Unassign a list of Network Classes of Service from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_office_zone_name",
            "defaultOfficeZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultOfficeZoneName
    default_office_zone_name = Field(
        type=str,
        required=False,
    )


class GroupOfficeZoneGetAssignedListRequest(OCIRequest):
    """
    Get a list of Office Zones assigned to a group.
    The response is either a ``GroupOfficeZoneGetAssignedListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_office_zone_name",
            "defaultOfficeZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultOfficeZoneName
    default_office_zone_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupOutgoingCallingPlanOriginatingGetListRequest(OCIRequest):
    """
    Request the originating permissions for a group default and it's departments.
    The response is either a ``GroupOutgoingCallingPlanOriginatingGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupOutgoingCallingPlanPinholeDigitPatternAddRequest(OCIRequest):
    """
    Add a new calling plan Pinhole digit string.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )


class GroupOutgoingCallingPlanPinholeDigitPatternDeleteListRequest(OCIRequest):
    """
    Delete one or more calling plan Pinhole digit strings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupOutgoingCallingPlanPinholeDigitPatternGetListRequest(OCIRequest):
    """
    Get the list of calling plan Pinhole digit strings for a group.
    The response is either a ``GroupOutgoingCallingPlanPinholeDigitPatternGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* digitPattern
    digit_pattern = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "disallow_user_id",
            "disallowUserId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "password_expires_days",
            "passwordExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_previous_passwords",
            "disallowPreviousPasswords",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_previous_passwords",
            "numberOfPreviousPasswords",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* disallowUserId
    disallow_user_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* passwordExpiresDays
    password_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowPreviousPasswords
    disallow_previous_passwords = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfPreviousPasswords
    number_of_previous_passwords = Field(
        type=int,
        required=False,
    )


class GroupPolicyGetRequest(OCIRequest):
    """
    Requests the Group's policy settings.
    The response is either ``GroupPolicyGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPolicyGetRequest14sp1(OCIRequest):
    """
    Requests the Group's policy settings.
    The response is either ``GroupPolicyGetResponse14sp1()`` or ``ErrorResponse()``.
    Replaced By : ``GroupPolicyGetRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPolicyGetRequest14sp4(OCIRequest):
    """
    Requests the Group's policy settings.
    The response is either ``GroupPolicyGetResponse14sp4()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPolicyGetRequest17(OCIRequest):
    """
    Requests the Group's policy settings.
    The response is either ``GroupPolicyGetResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPolicyGetRequest20(OCIRequest):
    """
    Requests the Group's policy settings.
    The response is either ``GroupPolicyGetResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPolicyModifyRequest(OCIRequest):
    """
    Request to modify the policies for a Group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_plan_access",
            "callingPlanAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension_access",
            "extensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "ldap_integration_access",
            "ldapIntegrationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_access",
            "voiceMessagingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "department_admin_user_access",
            "departmentAdminUserAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "department_admin_trunk_group_access",
            "departmentAdminTrunkGroupAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "department_admin_phone_number_extension_access",
            "departmentAdminPhoneNumberExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "department_admin_calling_line_id_number_access",
            "departmentAdminCallingLineIdNumberAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_authentication_access",
            "userAuthenticationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_group_directory_access",
            "userGroupDirectoryAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_profile_access",
            "userProfileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_enhanced_call_log_access",
            "userEnhancedCallLogAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_auto_attendant_name_dialing_access",
            "userAutoAttendantNameDialingAccess",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callingPlanAccess
    calling_plan_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extensionAccess
    extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* ldapIntegrationAccess
    ldap_integration_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voiceMessagingAccess
    voice_messaging_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* departmentAdminUserAccess
    department_admin_user_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* departmentAdminTrunkGroupAccess
    department_admin_trunk_group_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* departmentAdminPhoneNumberExtensionAccess
    department_admin_phone_number_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* departmentAdminCallingLineIdNumberAccess
    department_admin_calling_line_id_number_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userAuthenticationAccess
    user_authentication_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userGroupDirectoryAccess
    user_group_directory_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userProfileAccess
    user_profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userEnhancedCallLogAccess
    user_enhanced_call_log_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userAutoAttendantNameDialingAccess
    user_auto_attendant_name_dialing_access = Field(
        type=str,
        required=False,
    )


class GroupPolycomPhoneServicesGetRequest(OCIRequest):
    """
    Request the group's Polycom Phone Services attributes.
    The response is either a ``GroupPolycomPhoneServicesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPolycomPhoneServicesModifyRequest(OCIRequest):
    """
    Modify the group's Polycom Phone Services attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_group_common_phone_list_in_directory",
            "includeGroupCommonPhoneListInDirectory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_group_custom_contact_directory_in_directory",
            "includeGroupCustomContactDirectoryInDirectory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "group_custom_contact_directory",
            "groupCustomContactDirectory",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* includeGroupCommonPhoneListInDirectory
    include_group_common_phone_list_in_directory = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeGroupCustomContactDirectoryInDirectory
    include_group_custom_contact_directory_in_directory = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* groupCustomContactDirectory
    group_custom_contact_directory = Field(
        type=str,
        required=False,
    )


class GroupPortalPasscodeRulesGetRequest(OCIRequest):
    """
    Requests the group's passcode rules setting.
    The response is either ``GroupPortalPasscodeRulesGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPortalPasscodeRulesGetRequest19(OCIRequest):
    """
    Requests the group's passcode rules setting.
    The response is either ``GroupPortalPasscodeRulesGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_rule_level",
            "useRuleLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_repeated_digits",
            "disallowRepeatedDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_repeated_digits",
            "numberOfRepeatedDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_repeated_patterns",
            "disallowRepeatedPatterns",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_contiguous_sequences",
            "disallowContiguousSequences",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_ascending_digits",
            "numberOfAscendingDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "number_of_descending_digits",
            "numberOfDescendingDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_number",
            "disallowUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_user_number",
            "disallowReversedUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_passcode",
            "disallowOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_previous_passcodes",
            "numberOfPreviousPasscodes",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_passcode",
            "disallowReversedOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_code_length",
            "minCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_code_length",
            "maxCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "expire_password",
            "expirePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "passcode_expires_days",
            "passcodeExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useRuleLevel
    use_rule_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowRepeatedDigits
    disallow_repeated_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfRepeatedDigits
    number_of_repeated_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowRepeatedPatterns
    disallow_repeated_patterns = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowContiguousSequences
    disallow_contiguous_sequences = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfAscendingDigits
    number_of_ascending_digits = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* numberOfDescendingDigits
    number_of_descending_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowUserNumber
    disallow_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedUserNumber
    disallow_reversed_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPasscode
    disallow_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfPreviousPasscodes
    number_of_previous_passcodes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPasscode
    disallow_reversed_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minCodeLength
    min_code_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCodeLength
    max_code_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableLoginAfterMaxFailedLoginAttempts
    disable_login_after_max_failed_login_attempts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* expirePassword
    expire_password = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* passcodeExpiresDays
    passcode_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )


class GroupPreAlertingAnnouncementGetRequest(OCIRequest):
    """
    Get the group�s PreAlertingservice settings.
    The response is either a ``GroupPreAlertingAnnouncementGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPreAlertingAnnouncementGetRequest20(OCIRequest):
    """
    Get the group’s PreAlertingservice settings.
    The response is either a ``GroupPreAlertingAnnouncementGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupPreferredCarrierGroupGetRequest(OCIRequest):
    """
    Requests the currently configured carriers for a group.
    The response is either a ``GroupPreferredCarrierGroupGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_range_start",
            "numberRangeStart",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* numberRangeStart
    number_range_start = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(OCIRequest):
    """
    Get the list of assigned and unassigned enterprise trunknumber ranges in a group.
    The response is either ``GroupRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_range_start",
            "numberRangeStart",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* numberRangeStart
    number_range_start = Field(
        type=str,
        required=False,
    )


class GroupRoutePointBouncedCallGetRequest(OCIRequest):
    """
    Get a route point's bounced call settings.
    The response is either a ``GroupRoutePointBouncedCallGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointBouncedCallModifyRequest(OCIRequest):
    """
    Modify a route point's bounced call settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_rings_before_bouncing_call",
            "numberOfRingsBeforeBouncingCall",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_transfer",
            "enableTransfer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "bounce_call_when_agent_unavailable",
            "bounceCallWhenAgentUnavailable",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfRingsBeforeBouncingCall
    number_of_rings_before_bouncing_call = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableTransfer
    enable_transfer = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* bounceCallWhenAgentUnavailable
    bounce_call_when_agent_unavailable = Field(
        type=bool,
        required=False,
    )


class GroupRoutePointDeleteInstanceRequest(OCIRequest):
    """
    Delete a Route Point instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointDistinctiveRingingGetRequest(OCIRequest):
    """
    Get the distinctive ringing configuration values for route point.
    The response is either a ``GroupRoutePointDistinctiveRingingGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointDistinctiveRingingModifyRequest(OCIRequest):
    """
    Modify the distinctive ringing configuration values for route point.

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

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_distinctive_ringing",
            "enableDistinctiveRinging",
            bool,
            False,
            False,
            False,
        ),
        E(
            "distinctive_ringing_ring_pattern",
            "distinctiveRingingRingPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "distinctive_ringing_force_delivery_ring_pattern",
            "distinctiveRingingForceDeliveryRingPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableDistinctiveRinging
    enable_distinctive_ringing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* distinctiveRingingRingPattern
    distinctive_ringing_ring_pattern = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* distinctiveRingingForceDeliveryRingPattern
    distinctive_ringing_force_delivery_ring_pattern = Field(
        type=str,
        required=False,
    )


class GroupRoutePointExternalSystemAssignListRequest(OCIRequest):
    """
    Assign a list of route point external systems to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_point_external_system",
            "routePointExternalSystem",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routePointExternalSystem
    route_point_external_system = Field(
        type=str,
        required=False,
    )


class GroupRoutePointExternalSystemGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all Route Point External Systems assigned to a group.
    The response is either ``GroupRoutePointExternalSystemGetAssignedListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointExternalSystemUnassignListRequest(OCIRequest):
    """
    Unassign a list of route point external systems from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_point_external_system",
            "routePointExternalSystem",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routePointExternalSystem
    route_point_external_system = Field(
        type=str,
        required=False,
    )


class GroupRoutePointForcedForwardingGetRequest(OCIRequest):
    """
    Get a route point's forced forwarding settings.
    The response is either a ``GroupRoutePointForcedForwardingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointForcedForwardingGetRequest20(OCIRequest):
    """
    Get a route point's forced forwarding settings.
    The response is either a ``GroupRoutePointForcedForwardingGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetAnnouncementRequest(OCIRequest):
    """
    Get a route point's announcement settings.
    The response is either a ``GroupRoutePointGetAnnouncementResponse()`` or an
    ``ErrorResponse()``.

    Replaced By ``GroupRoutePointGetAnnouncementRequest19()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetAnnouncementRequest19(OCIRequest):
    """
    Get a route point's announcement settings.
    The response is either a ``GroupRoutePointGetAnnouncementResponse19()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetAnnouncementRequest20(OCIRequest):
    """
    Get a route point's announcement settings.
    The response is either a ``GroupRoutePointGetAnnouncementResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetDNISListRequest(OCIRequest):
    """
    Get a list of DNIS that are configured for a Route Point.
    The response is either ``GroupRoutePointGetDNISListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetFailoverPolicyRequest(OCIRequest):
    """
    Get the route point failover policy.
    The response is either a ``GroupRoutePointGetFailoverPolicyResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a Route Point instance.
    The response is either ``GroupRoutePointGetInstanceResponse()`` or ``ErrorResponse()``.

    Replaced By ``GroupRoutePointGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Route Point instance.
    The response is either ``GroupRoutePointGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointHolidayServiceGetRequest(OCIRequest):
    """
    Get a route point's holiday service settings.
    The response is either a ``GroupRoutePointHolidayServiceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointHolidayServiceGetRequest17sp1(OCIRequest):
    """
    Get a route point's holiday service settings.
    The response is either a ``GroupRoutePointHolidayServiceGetResponse17sp1()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointHolidayServiceGetRequest20(OCIRequest):
    """
    Get a route point's holiday service settings.
    The response is either a ``GroupRoutePointHolidayServiceGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointManualFailoverRequest(OCIRequest):
    """
    Initiate manual failover for the Route Point.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointModifyDNISParametersRequest(OCIRequest):
    """
    Modify the setting that are configured for all the DNIS in a Route Point.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "display_dnis_number",
            "displayDNISNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "display_dnis_name",
            "displayDNISName",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* displayDNISNumber
    display_dnis_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* displayDNISName
    display_dnis_name = Field(
        type=bool,
        required=False,
    )


class GroupRoutePointModifyFailoverPolicyRequest(OCIRequest):
    """
    Modify the route point failover policy.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_failover_support",
            "enableFailoverSupport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "external_system",
            "externalSystem",
            str,
            False,
            False,
            False,
        ),
        E(
            "failover_phone_number",
            "failoverPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "per_call_enable_failover_support",
            "perCallEnableFailoverSupport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "per_call_call_failure_timeout_seconds",
            "perCallCallFailureTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "per_call_outbound_call_failure_timeout_seconds",
            "perCallOutboundCallFailureTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "per_call_failover_phone_number",
            "perCallFailoverPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableFailoverSupport
    enable_failover_support = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* externalSystem
    external_system = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* failoverPhoneNumber
    failover_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* perCallEnableFailoverSupport
    per_call_enable_failover_support = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* perCallCallFailureTimeoutSeconds
    per_call_call_failure_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* perCallOutboundCallFailureTimeoutSeconds
    per_call_outbound_call_failure_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* perCallFailoverPhoneNumber
    per_call_failover_phone_number = Field(
        type=str,
        required=False,
    )


class GroupRoutePointNightServiceGetRequest(OCIRequest):
    """
    Get a route point's night service settings.
    The response is either a ``GroupRoutePointNightServiceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointNightServiceGetRequest17sp1(OCIRequest):
    """
    Get a route point's night service settings.
    The response is either a ``GroupRoutePointNightServiceGetResponse17sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointNightServiceGetRequest20(OCIRequest):
    """
    Get a route point's night service settings.
    The response is either a ``GroupRoutePointNightServiceGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointOverflowGetRequest(OCIRequest):
    """
    Get a route point's overflow settings.
    The response is either a ``GroupRoutePointOverflowGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointOverflowGetRequest20(OCIRequest):
    """
    Get a route point's overflow settings.
    The response is either a ``GroupRoutePointOverflowGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointQueueCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Route Point Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class GroupRoutePointQueueCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Route Point Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupRoutePointQueueCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Route Point Level and Organization Level Call Disposition Codes.
    The response is either ``GroupRoutePointQueueCallDispositionCodeGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutePointQueueCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Route Point Call Disposition Code.
    The response is either ``GroupRoutePointQueueCallDispositionCodeGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class GroupRoutePointQueueCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Route Point Call Disposition Code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupRoutingProfileGetRequest(OCIRequest):
    """
    Request the routing profile for the group.
    The response is either a ``GroupRoutingProfileGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupRoutingProfileModifyRequest(OCIRequest):
    """
    Requests to modify the routing profile for a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "routing_profile",
            "routingProfile",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routingProfile
    routing_profile = Field(
        type=str,
        required=False,
    )


class GroupScheduleAddRequest(OCIRequest):
    """
    Add a group schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_name",
            "scheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleName
    schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleType
    schedule_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* scheduleType
    schedule_type = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* scheduleType
    schedule_type = Field(
        type=str,
        required=False,
    )


class GroupSeriesCompletionAddInstanceRequest(OCIRequest):
    """
    Adds a Series Completion group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=False,
    )


class GroupSeriesCompletionDeleteInstanceRequest(OCIRequest):
    """
    Deletes a Series Completion group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupSeriesCompletionGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Series Completion instances within a group.
    The response is either ``GroupSeriesCompletionGetInstanceListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupSeriesCompletionGetInstanceRequest(OCIRequest):
    """
    Gets a Series Completion group.
    The response is either ``GroupSeriesCompletionGetInstanceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupServiceAssignListRequest(OCIRequest):
    """
    Assign one or more group services to the group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )


class GroupServiceGetAuthorizationListRequest(OCIRequest):
    """
    Requests the group's service authorization status.
    The response is either ``GroupServiceGetAuthorizationListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupServiceGetAuthorizedListRequest(OCIRequest):
    """
    Requests the list of services and service packs authorized to a group.
    The response is either ``GroupServiceGetAuthorizedListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupServiceInstancePrivacyGetRequest(OCIRequest):
    """
    Request the data associated with Privacy for a service instance.
    The response is either a ``GroupServiceInstancePrivacyGetResponse()``.
    Replaced By ``GroupServiceInstancePrivacyGetRequest17sp4()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupServiceInstancePrivacyGetRequest17sp4(OCIRequest):
    """
    Request the data associated with Privacy for a service instance.
    The response is either a ``GroupServiceInstancePrivacyGetResponse17sp4()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupServiceInstancePrivacyModifyRequest(OCIRequest):
    """
    Modify the data associated with Privacy for a service instance.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_directory_privacy",
            "enableDirectoryPrivacy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_auto_attendant_extension_dialing_privacy",
            "enableAutoAttendantExtensionDialingPrivacy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_auto_attendant_name_dialing_privacy",
            "enableAutoAttendantNameDialingPrivacy",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableDirectoryPrivacy
    enable_directory_privacy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAutoAttendantExtensionDialingPrivacy
    enable_auto_attendant_extension_dialing_privacy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAutoAttendantNameDialingPrivacy
    enable_auto_attendant_name_dialing_privacy = Field(
        type=bool,
        required=False,
    )


class GroupServiceIsAssignedRequest(OCIRequest):
    """
    Request to determine if a GroupService is assigned to the group.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )


class GroupServicePhoneNumberLookupRequest(OCIRequest):
    """
    Lookup if the given number is defined in the specified service in the group.
    The response is ``GroupServicePhoneNumberLookupResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_type",
            "serviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceType
    service_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class GroupServiceScriptsGroupClearLogRequest(OCIRequest):
    """
    Clear the Service Script Group Log.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupServiceScriptsGroupGetLogRequest(OCIRequest):
    """
    Request the group level data associated with Service Scripts Group Log.
    The response is either a ``GroupServiceScriptsGroupGetLogResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupServiceScriptsGroupGetRequest(OCIRequest):
    """
    Request the group level data associated with Service Scripts Group Configuration.
    The response is either a ``GroupServiceScriptsGroupGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupServiceUnassignListRequest(OCIRequest):
    """
    Unassign one or more of the group's assigned services.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )


class GroupSessionAdmissionControlGetRequest(OCIRequest):
    """
    Get the session admission control capacity for the group.
    The response is either a ``GroupSessionAdmissionControlGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupSessionAdmissionControlGroupGetRequest(OCIRequest):
    """
    Request to get a session admission control group for the group.
    The response is either a ``GroupSessionAdmissionControlGroupGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupSessionAdmissionControlGroupGetRequest19sp1(OCIRequest):
    """
    Request to get a session admission control group for the group.
    The response is either a ``GroupSessionAdmissionControlGroupGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class GroupSessionAdmissionControlModifyRequest(OCIRequest):
    """
    Request to modify session admission control capacity for the group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "restrict_aggregate_sessions",
            "restrictAggregateSessions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_sessions",
            "maxSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "count_intra_group_sessions",
            "countIntraGroupSessions",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* restrictAggregateSessions
    restrict_aggregate_sessions = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSessions
    max_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* countIntraGroupSessions
    count_intra_group_sessions = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupSpeedDial100GetRequest(OCIRequest):
    """
    Get the speed dial 100 service settings for a group.
    The response is either a ``GroupSpeedDial100GetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupSpeedDial100GetRequest17sp1(OCIRequest):
    """
    Get the speed dial 100 service settings for a group.
    The response is either a ``GroupSpeedDial100GetResponse17sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupSpeedDial100ModifyRequest(OCIRequest):
    """
    Modify the speed dial 100 prefix setting for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupThirdPartyVoiceMailSupportModifyRequest(OCIRequest):
    """
    Modify the Third Party Voice Mail Support settings for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "group_server",
            "groupServer",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* groupServer
    group_server = Field(
        type=str,
        required=False,
    )


class GroupTimeScheduleDeleteRequest(OCIRequest):
    """
    Delete a time schedule from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )


class GroupTimeScheduleGetListRequest(OCIRequest):
    """
    Request a list of all time schedules in a group.
    The response is either a ``GroupTimeScheduleGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupTimeScheduleGetRequest(OCIRequest):
    """
    Request to get a group time schedule.
    The response is either a ``GroupTimeScheduleGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupDeleteInstanceRequest(OCIRequest):
    """
    Delete a Trunk Group Instance from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupGetAvailableDetailListRequest(OCIRequest):
    """
    Requests the list of available trunk groups within a group.
    The response is either ``GroupTrunkGroupGetAvailableDetailListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_enterprise_trunk_groups",
            "includeEnterpriseTrunkGroups",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_trunk_groups_with_device",
            "onlyTrunkGroupsWithDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeEnterpriseTrunkGroups
    include_enterprise_trunk_groups = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* onlyTrunkGroupsWithDevice
    only_trunk_groups_with_device = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_enterprise_trunk_groups",
            "includeEnterpriseTrunkGroups",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_trunk_groups_with_device",
            "onlyTrunkGroupsWithDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeEnterpriseTrunkGroups
    include_enterprise_trunk_groups = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* onlyTrunkGroupsWithDevice
    only_trunk_groups_with_device = Field(
        type=bool,
        required=False,
    )


class GroupTrunkGroupGetInstanceRequest14(OCIRequest):
    """
    Get a Trunk Group Instance's profile.
    The response is either a ``GroupTrunkGroupGetInstanceResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupGetInstanceRequest14sp1(OCIRequest):
    """
    Get a Trunk Group Instance's profile.
    The response is either a ``GroupTrunkGroupGetInstanceResponse14sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupGetRequest(OCIRequest):
    """
    Get the maximum permissible active trunk group calls for the group.
    The response is either a ``GroupTrunkGroupGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupUserCreationTaskAddRequest(OCIRequest):
    """
    Add a user creation task for a trunk group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id_format",
            "userIdFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id_domain",
            "userIdDomain",
            str,
            False,
            True,
            False,
        ),
        E(
            "populate_extension",
            "populateExtension",
            bool,
            False,
            True,
            False,
        ),
        E(
            "line_port_format",
            "linePortFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_port_domain",
            "linePortDomain",
            str,
            False,
            True,
            False,
        ),
        E(
            "populate_contact",
            "populateContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "contact_format",
            "contactFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "contact_domain",
            "contactDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_phone_numbers",
            "userPhoneNumbers",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "user_extensions",
            "userExtensions",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_service",
            "userService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userIdFormat
    user_id_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userIdDomain
    user_id_domain = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* populateExtension
    populate_extension = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* linePortFormat
    line_port_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* linePortDomain
    line_port_domain = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* populateContact
    populate_contact = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* contactFormat
    contact_format = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* contactDomain
    contact_domain = Field(
        type=str,
        required=False,
    )
    #: str: *Required* userPhoneNumbers
    user_phone_numbers = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userExtensions
    user_extensions = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userService
    user_service = Field(
        type=str,
        required=False,
    )


class GroupTrunkGroupUserCreationTaskDeleteRequest(OCIRequest):
    """
    Delete a user creation task for a trunk group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupUserCreationTaskGetListRequest(OCIRequest):
    """
    Get the list of user creation tasks for a trunk group.
    The response is either ``GroupTrunkGroupUserCreationTaskGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupUserCreationTaskGetRequest(OCIRequest):
    """
    Request the details of a specified user creation task for a trunk group.
    The response is either ``GroupTrunkGroupUserCreationTaskGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


class GroupVirtualOnNetEnterpriseExtensionsDeleteUserRequest(OCIRequest):
    """
    Delete an existing Virtual On-Net user from a Group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class GroupVirtualOnNetEnterpriseExtensionsGetUserRequest(OCIRequest):
    """
    Get an existing Virtual On-Net user from a Group.
    The response is either a
    ``GroupVirtualOnNetEnterpriseExtensionsGetUserResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "virtual_on_net_call_type_name",
            "virtualOnNetCallTypeName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* virtualOnNetCallTypeName
    virtual_on_net_call_type_name = Field(
        type=str,
        required=False,
    )


class GroupVoiceMessagingGroupGetPasscodeRulesRequest(OCIRequest):
    """
    Requests the group's voice portal passcode rules setting.
    The response is either ``GroupVoiceMessagingGroupGetPasscodeRulesResponse()`` or
    ``ErrorResponse()``.
    Replaced By ``GroupPortalPasscodeRulesGetRequest()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetRequest(OCIRequest):
    """
    Requests the group's Voice Messaging settings.
    The response is either ``GroupVoiceMessagingGroupGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalBrandingRequest(OCIRequest):
    """
    Get the group's voice portal branding settings.
    The response is either a ``GroupVoiceMessagingGroupGetVoicePortalBrandingResponse()``
    or an ``ErrorResponse()``.
    Replaced By ``GroupVoiceMessagingGroupGetVoicePortalBrandingRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalBrandingRequest16(OCIRequest):
    """
    Get the group's voice portal branding settings.
    The response is either a ``GroupVoiceMessagingGroupGetVoicePortalBrandingResponse16()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalBrandingRequest20(OCIRequest):
    """
    Get the group's voice portal branding settings.
    The response is either a ``GroupVoiceMessagingGroupGetVoicePortalBrandingResponse20()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalRequest14(OCIRequest):
    """
    Requests the group's voice messaging settings
    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse14()`` or
    ``ErrorResponse()``.
    Replaced by ``GroupVoiceMessagingGroupGetVoicePortalRequest15()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalRequest15(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.
    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse15()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalRequest17(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.
    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse17()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupGetVoicePortalRequest19sp1(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.
    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse19sp1()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceMessagingGroupModifyPasscodeRulesRequest(OCIRequest):
    """
    Request to modify the group's voice portal passcode rules setting.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``GroupPortalPasscodeRulesModifyRequest()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_rule_level",
            "useRuleLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_repeated_digits",
            "disallowRepeatedDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_number",
            "disallowUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_user_number",
            "disallowReversedUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_passcode",
            "disallowOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_passcode",
            "disallowReversedOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_code_length",
            "minCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_code_length",
            "maxCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "expire_password",
            "expirePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "passcode_expires_days",
            "passcodeExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useRuleLevel
    use_rule_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowRepeatedDigits
    disallow_repeated_digits = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserNumber
    disallow_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedUserNumber
    disallow_reversed_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPasscode
    disallow_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPasscode
    disallow_reversed_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minCodeLength
    min_code_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCodeLength
    max_code_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableLoginAfterMaxFailedLoginAttempts
    disable_login_after_max_failed_login_attempts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* expirePassword
    expire_password = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* passcodeExpiresDays
    passcode_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )


class GroupVoiceMessagingGroupModifyRequest(OCIRequest):
    """
    Request to modify the group's voice messaging settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_mail_server_setting",
            "useMailServerSetting",
            str,
            False,
            False,
            False,
        ),
        E(
            "warn_caller_before_recording_voice_message",
            "warnCallerBeforeRecordingVoiceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_users_configuring_advanced_settings",
            "allowUsersConfiguringAdvancedSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_compose_or_forward_message_to_entire_group",
            "allowComposeOrForwardMessageToEntireGroup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mail_server_net_address",
            "mailServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mail_server_protocol",
            "mailServerProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "real_delete_for_imap",
            "realDeleteForImap",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_mailbox_length_minutes",
            "maxMailboxLengthMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "does_message_age",
            "doesMessageAge",
            bool,
            False,
            False,
            False,
        ),
        E(
            "hold_period_days",
            "holdPeriodDays",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useMailServerSetting
    use_mail_server_setting = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* warnCallerBeforeRecordingVoiceMessage
    warn_caller_before_recording_voice_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUsersConfiguringAdvancedSettings
    allow_users_configuring_advanced_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowComposeOrForwardMessageToEntireGroup
    allow_compose_or_forward_message_to_entire_group = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* mailServerNetAddress
    mail_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mailServerProtocol
    mail_server_protocol = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* realDeleteForImap
    real_delete_for_imap = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxMailboxLengthMinutes
    max_mailbox_length_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* doesMessageAge
    does_message_age = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* holdPeriodDays
    hold_period_days = Field(
        type=int,
        required=False,
    )


class GroupVoiceXmlDeleteInstanceRequest(OCIRequest):
    """
    Delete a VoiceXML instance from a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )


class GroupVoiceXmlGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a VoiceXML instance.
    The response is either ``GroupVoiceXmlGetInstanceResponse()`` or ``ErrorResponse()``.

    Replaced By ``GroupVoiceXmlGetInstanceRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class GroupVoiceXmlGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a VoiceXML instance.
    The response is either ``GroupVoiceXmlGetInstanceResponse19sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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).
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "signed_password",
            "signedPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* signedPassword
    signed_password = Field(
        type=str,
        required=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).
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "signed_password",
            "signedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "plain_text_password",
            "plainTextPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* signedPassword
    signed_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* plainTextPassword
    plain_text_password = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reason",
            "reason",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reason
    reason = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "old_password",
            "oldPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* oldPassword
    old_password = Field(
        type=str,
        required=False,
    )
    #: str: *Required* newPassword
    new_password = Field(
        type=str,
        required=True,
    )


class PrimaryInfoGetRequest(OCIRequest):
    """
    Requests information about the primary server for high-availability support.
    """

    _ELEMENTS = (
        E(
            "is_private",
            "isPrivate",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_address_info_requested",
            "isAddressInfoRequested",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* isPrivate
    is_private = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isAddressInfoRequested
    is_address_info_requested = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class ServiceProviderAccessDeviceDeleteRequest(OCIRequest):
    """
    Request to delete a specified service provider access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a service provider device profile file.
    The response is either ``ServiceProviderAccessDeviceFileGetResponse()`` or
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderAccessDeviceFileGetRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceFileGetRequest14sp8(OCIRequest):
    """
    Request to get a service provider device profile file.
    The response is either ``ServiceProviderAccessDeviceFileGetResponse14sp8()`` or
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderAccessDeviceFileGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceFileGetRequest16sp1(OCIRequest):
    """
    Request to get a service provider device profile file.
    The response is either ``ServiceProviderAccessDeviceFileGetResponse16sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceFileGetRequest20(OCIRequest):
    """
    Request to get a service provider device profile file.
    The response is either ``ServiceProviderAccessDeviceFileGetResponse20()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceGetRequest14(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.
    The response is either ``ServiceProviderAccessDeviceGetResponse14()`` or
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderAccessDeviceGetRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceGetRequest14sp3(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.
    The response is either ``ServiceProviderAccessDeviceGetResponse14sp3()`` or
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderAccessDeviceGetRequest14sp6()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceGetRequest14sp6(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.
    The response is either ``ServiceProviderAccessDeviceGetResponse14sp6()`` or
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderAccessDeviceGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceGetRequest16(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.
    The response is either ``ServiceProviderAccessDeviceGetResponse16()`` or
    ``ErrorResponse()``.

    Replaced By ``ServiceProviderAccessDeviceGetRequest19()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderAccessDeviceGetRequest18sp1(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.
    The response is either ``ServiceProviderAccessDeviceGetResponse18sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_port",
            "linePort",
            str,
            False,
            True,
            False,
        ),
        E(
            "private_identity",
            "privateIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_primary_line_port",
            "isPrimaryLinePort",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* linePort
    line_port = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* privateIdentity
    private_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isPrimaryLinePort
    is_primary_line_port = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminAddRequest14(OCIRequest):
    """
    Add a service provider administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "administrator_type",
            "administratorType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Required* administratorType
    administrator_type = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminDeleteRequest(OCIRequest):
    """
    Delete a service provider administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetListRequest14(OCIRequest):
    """
    Get a list of service provider administrators.
    The response is either a ``ServiceProviderAdminGetListResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest14(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse14()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest16sp1(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse16sp1()`` or
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderAdminGetPolicyRequest17()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest16sp2(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse16sp2()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest17(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse17()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest17sp1(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse17sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest17sp3(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse17sp3()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest18(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse18()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetPolicyRequest20(OCIRequest):
    """
    Requests the service provider administrator's policy settings.
    The response is either ``ServiceProviderAdminGetPolicyResponse20()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdminGetRequest14(OCIRequest):
    """
    Get a service provider administrators profile.
    The response is either a ``ServiceProviderAdminGetResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_access",
            "profileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_access",
            "groupAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_access",
            "userAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "admin_access",
            "adminAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "department_access",
            "departmentAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_access",
            "accessDeviceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number_extension_access",
            "phoneNumberExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_number_access",
            "callingLineIdNumberAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_access",
            "serviceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_access",
            "servicePackAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "session_admission_control_access",
            "sessionAdmissionControlAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "web_branding_access",
            "webBrandingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "office_zone_access",
            "officeZoneAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "communication_barring_access",
            "communicationBarringAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_policy_access",
            "networkPolicyAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "number_activation_access",
            "numberActivationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "dialable_caller_id_access",
            "dialableCallerIDAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "verify_translation_and_routing_access",
            "verifyTranslationAndRoutingAccess",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* profileAccess
    profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAccess
    group_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userAccess
    user_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* adminAccess
    admin_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* departmentAccess
    department_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessDeviceAccess
    access_device_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumberExtensionAccess
    phone_number_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdNumberAccess
    calling_line_id_number_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceAccess
    service_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackAccess
    service_pack_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sessionAdmissionControlAccess
    session_admission_control_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* webBrandingAccess
    web_branding_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* officeZoneAccess
    office_zone_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* communicationBarringAccess
    communication_barring_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkPolicyAccess
    network_policy_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* numberActivationAccess
    number_activation_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* dialableCallerIDAccess
    dialable_caller_id_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* verifyTranslationAndRoutingAccess
    verify_translation_and_routing_access = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )


class ServiceProviderAdviceOfChargeGetRequest(OCIRequest):
    """
    Request to get the list of Advice of Charge service provider parameters.
    The response is either ``ServiceProviderAdviceOfChargeGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAdviceOfChargeModifyRequest(OCIRequest):
    """
    Modify the service provider level Advice Of Charge service provider settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_sp_level_ao_c_settings",
            "useSPLevelAoCSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delay_between_notification_seconds",
            "delayBetweenNotificationSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useSPLevelAoCSettings
    use_sp_level_ao_c_settings = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* delayBetweenNotificationSeconds
    delay_between_notification_seconds = Field(
        type=int,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderAnswerConfirmationGetRequest16(OCIRequest):
    """
    Get a service provider or enterprise's answer confirmation settings.
    The response is either a ``ServiceProviderAnswerConfirmationGetResponse16()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderApplicationServerSetGetRequest(OCIRequest):
    """
    Get the Application Server set for a service provider or enterprise.
    The response is either a ``ServiceProviderApplicationServerSetGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderApplicationServerSetModifyRequest(OCIRequest):
    """
    Modify the Application Server set assigned to the service provider or enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_server_set_name",
            "applicationServerSetName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* applicationServerSetName
    application_server_set_name = Field(
        type=str,
        required=False,
    )


class ServiceProviderBroadWorksCommunicatorGetRequest(OCIRequest):
    """
    Request to get Configuration Server for a specified service
    provider. The response is either
    a ``ServiceProviderBroadWorksCommunicatorGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderBroadWorksCommunicatorModifyRequest(OCIRequest):
    """
    Request to modify the Configuration URL. The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            False,
            False,
        ),
        E(
            "configuration_server_url",
            "configurationServerURL",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* configurationServerURL
    configuration_server_url = Field(
        type=str,
        required=False,
    )


class ServiceProviderBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the service provider BroadWorks Mobility service settings.
    The response is either a ``ServiceProviderBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``.
    Replaced By ``ServiceProviderBroadWorksMobilityGetRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderBroadWorksMobilityGetRequest19sp1(OCIRequest):
    """
    Get the service provider BroadWorks Mobility service settings.
    The response is either a ``ServiceProviderBroadWorksMobilityGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_subscriber_directory_number",
            "mobileSubscriberDirectoryNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* mobileSubscriberDirectoryNumber
    mobile_subscriber_directory_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_network_name",
            "mobileNetworkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_subscriber_directory_number",
            "mobileSubscriberDirectoryNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNetworkName
    mobile_network_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* mobileSubscriberDirectoryNumber
    mobile_subscriber_directory_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_subscriber_directory_number",
            "mobileSubscriberDirectoryNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* mobileSubscriberDirectoryNumber
    mobile_subscriber_directory_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the service provider level BroadWorks Mobility service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_location_services",
            "enableLocationServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_msrn_lookup",
            "enableMSRNLookup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_mobile_state_checking",
            "enableMobileStateChecking",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_announcement_suppression",
            "enableAnnouncementSuppression",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableLocationServices
    enable_location_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMSRNLookup
    enable_msrn_lookup = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMobileStateChecking
    enable_mobile_state_checking = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAnnouncementSuppression
    enable_announcement_suppression = Field(
        type=bool,
        required=False,
    )


class ServiceProviderCPEConfigRebuildDeviceConfigFileRequest(OCIRequest):
    """
    Rebuild the config file for a specified device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "force",
            "force",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* force
    force = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "ordered_line_port_list",
            "orderedLinePortList",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* orderedLinePortList
    ordered_line_port_list = Field(
        type=str,
        required=True,
    )


class ServiceProviderCPEConfigResetDeviceRequest(OCIRequest):
    """
    Reset a specific service provider or enterprise device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "force",
            "force",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* force
    force = Field(
        type=bool,
        required=False,
    )


class ServiceProviderCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse14()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingGetPolicyRequest14sp1(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse14sp1()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingGetPolicyRequest15sp2(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse15sp2()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingGetPolicyRequest16(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse16()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingGetPolicyRequest16sp2(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse16sp2()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingGetPolicyRequest17(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse17()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingGetPolicyRequest19sp1(OCIRequest):
    """
    Request the service provider level data associated with Call Processing
    Policy. The response is either a
    ``ServiceProviderCallProcessingGetPolicyResponse18sp1()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCallProcessingModifyPolicyRequest14(OCIRequest):
    """
    Modify the service provider level data associated with Call Procesing
    Policy. The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_uri",
            "conferenceURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
    override_clid_restriction_for_external_calls_via_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* conferenceURI
    conference_uri = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_service_provider_dclid_setting",
            "useServiceProviderDCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_uri",
            "conferenceURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_calls_clid_policy",
            "groupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useServiceProviderDCLIDSetting
    use_service_provider_dclid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* conferenceURI
    conference_uri = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupCallsCLIDPolicy
    group_calls_clid_policy = Field(
        type=str,
        required=False,
    )


class ServiceProviderCommunicationBarringCriteriaAssignListRequest(OCIRequest):
    """
    Assign a list of Communication Barring Criteria to a service provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* criteriaName
    criteria_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringCriteriaUnassignListRequest(OCIRequest):
    """
    Unassign a list of Communication Barring Criteria from a service provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* criteriaName
    criteria_name = Field(
        type=str,
        required=False,
    )


class ServiceProviderCommunicationBarringDigitPatternCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Digit Pattern Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_digit_pattern",
            "matchDigitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchDigitPattern
    match_digit_pattern = Field(
        type=str,
        required=False,
    )


class ServiceProviderCommunicationBarringDigitPatternCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Digit Pattern Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringDigitPatternCriteriaGetRequest(OCIRequest):
    """
    Get an existing Digit Pattern Criteria.
    The response is either a ``ServiceProviderCommunicationBarringDigitPatternCriteriaGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringDigitPatternCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Digit Pattern Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "add_match_digit_pattern",
            "addMatchDigitPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "delete_match_digit_pattern",
            "deleteMatchDigitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addMatchDigitPattern
    add_match_digit_pattern = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deleteMatchDigitPattern
    delete_match_digit_pattern = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringIncomingCriteriaUnassignListRequest(
    OCIRequest,
):
    """
    Unassign a list of Communication Barring Incoming Criteria from a service provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "default_profile",
            "defaultProfile",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* defaultProfile
    default_profile = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringProfileGetDigitPatternCriteriaUsageListRequest(
    OCIRequest,
):
    """
    Get the list of Profiles that use a specific Digit Pattern Criteria.
    The response is either a ``ServiceProviderCommunicationBarringProfileGetDigitPatternCriteriaUsageListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringProfileGetListRequest(OCIRequest):
    """
    Get the list of all Communication Barring Profiles.
    The response is either a
    ``ServiceProviderCommunicationBarringProfileGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringProfileGetRequest(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``ServiceProviderCommunicationBarringProfileGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringProfileGetRequest17sp3(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``ServiceProviderCommunicationBarringProfileGetResponse17sp3()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class ServiceProviderCommunicationBarringProfileGetRequest19sp1(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``ServiceProviderCommunicationBarringProfileGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class ServiceProviderDeleteRequest(OCIRequest):
    """
    Delete a service provider or enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "event_id",
            "eventId",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Required* eventId
    event_id = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_service_provider_settings",
            "useServiceProviderSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_authentication_name",
            "disallowAuthenticationName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_permanent_lockout_notification",
            "sendPermanentLockoutNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_authentication_lockout_type",
            "deviceProfileAuthenticationLockoutType",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_temporary_lockout_threshold",
            "deviceProfileTemporaryLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "device_profile_wait_algorithm",
            "deviceProfileWaitAlgorithm",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_lockout_fixed_minutes",
            "deviceProfileLockoutFixedMinutes",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_permanent_lockout_threshold",
            "deviceProfilePermanentLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useServiceProviderSettings
    use_service_provider_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowAuthenticationName
    disallow_authentication_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendPermanentLockoutNotification
    send_permanent_lockout_notification = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* permanentLockoutNotifyEmailAddress
    permanent_lockout_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceProfileAuthenticationLockoutType
    device_profile_authentication_lockout_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* deviceProfileTemporaryLockoutThreshold
    device_profile_temporary_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* deviceProfileWaitAlgorithm
    device_profile_wait_algorithm = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceProfileLockoutFixedMinutes
    device_profile_lockout_fixed_minutes = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* deviceProfilePermanentLockoutThreshold
    device_profile_permanent_lockout_threshold = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_screening_services",
            "includeCodeForScreeningServices",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_secondary_dial_tone",
            "enableSecondaryDialTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeCodeForNetworkTranslationsAndRouting
    include_code_for_network_translations_and_routing = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeCodeForScreeningServices
    include_code_for_screening_services = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableSecondaryDialTone
    enable_secondary_dial_tone = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )


class ServiceProviderDialPlanPolicyGetAccessCodeListRequest(OCIRequest):
    """
    Request the Service Provider level data associated with Dial Plan Policy.
    The response is either a ``ServiceProviderDialPlanPolicyGetAccessCodeListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderDialPlanPolicyGetRequest17(OCIRequest):
    """
    Request the Service Provider level data associated with Dial Plan Policy.
    The response is either a ``ServiceProviderDialPlanPolicyGetResponse17()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderDialPlanPolicyModifyAccessCodeRequest(OCIRequest):
    """
    Request to modify a Service Provider level Dial Plan Access Code and its attribues.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_code_for_screening_services",
            "includeCodeForScreeningServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_secondary_dial_tone",
            "enableSecondaryDialTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* includeCodeForNetworkTranslationsAndRouting
    include_code_for_network_translations_and_routing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeCodeForScreeningServices
    include_code_for_screening_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableSecondaryDialTone
    enable_secondary_dial_tone = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class ServiceProviderDialPlanPolicyModifyRequest(OCIRequest):
    """
    Modify the Service Provider level data associated with Dial Plan Policy.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_access_code_for_public_calls",
            "requiresAccessCodeForPublicCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_e164_public_calls",
            "allowE164PublicCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefer_e164_number_format_for_callback_services",
            "preferE164NumberFormatForCallbackServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "public_digit_map",
            "publicDigitMap",
            str,
            False,
            False,
            False,
        ),
        E(
            "private_digit_map",
            "privateDigitMap",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* requiresAccessCodeForPublicCalls
    requires_access_code_for_public_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowE164PublicCalls
    allow_e164_public_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* preferE164NumberFormatForCallbackServices
    prefer_e164_number_format_for_callback_services = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* publicDigitMap
    public_digit_map = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* privateDigitMap
    private_digit_map = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchCallType
    match_call_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=True,
    )


class ServiceProviderDialableCallerIDCriteriaDeleteRequest(OCIRequest):
    """
    Delete a Dialable Caller ID Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class ServiceProviderDialableCallerIDCriteriaGetRequest(OCIRequest):
    """
    Get an existing Dialable Caller ID Criteria.
    The response is either a
    ``ServiceProviderDialableCallerIDCriteriaGetRequest()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class ServiceProviderDialableCallerIDGetRequest(OCIRequest):
    """
    Get the service provider?s Dialable Caller ID settings and criteria list.
    The response is either a
    ``ServiceProviderDialableCallerIDGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderDigitCollectionGetRequest13mp4(OCIRequest):
    """
    Request the service provider's digit collection attributes.
    The response is either a ``ServiceProviderDigitCollectionGetResponse13mp4()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderDigitCollectionModifyRequest(OCIRequest):
    """
    Modifies the service provider's digit collection attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_code",
            "accessCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "public_digit_map",
            "publicDigitMap",
            str,
            False,
            False,
            False,
        ),
        E(
            "private_digit_map",
            "privateDigitMap",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* accessCode
    access_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* publicDigitMap
    public_digit_map = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* privateDigitMap
    private_digit_map = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderDomainAssignListRequest(OCIRequest):
    """
    Assign a list of domains to a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


class ServiceProviderDomainGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all domains assigned to a service provider.
    The response is either ``ServiceProviderDomainGetAssignedListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderDomainUnassignListRequest(OCIRequest):
    """
    Unassign a list of domains from a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


class ServiceProviderEnhancedCallLogsGetRequest(OCIRequest):
    """
    Get the service provider's enhanced call log settings.
    The response is either a ``ServiceProviderEnhancedCallLogsGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_logged_calls",
            "maxLoggedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_expiration_days",
            "callExpirationDays",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* maxLoggedCalls
    max_logged_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* callExpirationDays
    call_expiration_days = Field(
        type=int,
        required=False,
    )


class ServiceProviderExternalCustomRingbackGetRequest(OCIRequest):
    """
    Request the service provider level data associated with External Custom Ringback.
    The response is either a ``ServiceProviderExternalCustomRingbackGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderExternalCustomRingbackModifyRequest(OCIRequest):
    """
    Modify the service provider level data associated with External Custom Ringback.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_net_address",
            "serverNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serverNetAddress
    server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderFileRepositoryDeviceUserAddRequest(OCIRequest):
    """
    Add a new service provider file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_put",
            "allowPut",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_delete",
            "allowDelete",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_get",
            "allowGet",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* password
    password = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allowPut
    allow_put = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowDelete
    allow_delete = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowGet
    allow_get = Field(
        type=bool,
        required=True,
    )


class ServiceProviderFileRepositoryDeviceUserDeleteRequest(OCIRequest):
    """
    Delete a service provider file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderFileRepositoryDeviceUserModifyRequest(OCIRequest):
    """
    Modify a service provider file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_put",
            "allowPut",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_delete",
            "allowDelete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_get",
            "allowGet",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowPut
    allow_put = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDelete
    allow_delete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowGet
    allow_get = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderGetRequest17sp1(OCIRequest):
    """
    Get the profile for a service provider or enterprise.
    The response is either a ``ServiceProviderGetResponse17sp1()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "maximum_target_users",
            "maximumTargetUsers",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* maximumTargetUsers
    maximum_target_users = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "activation_digits",
            "activationDigits",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* activationDigits
    activation_digits = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "flash_activation_digits",
            "flashActivationDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_transfer_activation_digits",
            "callTransferActivationDigits",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* flashActivationDigits
    flash_activation_digits = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callTransferActivationDigits
    call_transfer_activation_digits = Field(
        type=str,
        required=False,
    )


class ServiceProviderIntegratedIMPGetRequest(OCIRequest):
    """
    Get the Integrated IMP service attributes for the service provider.
    The response is either ``ServiceProviderIntegratedIMPGetResponse()`` or
    ``ErrorResponse()``.

    Replaced By ``ServiceProviderIntegratedIMPGetRequest21()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderIntegratedIMPGetRequest21(OCIRequest):
    """
    Get the Integrated IMP service attributes for the service provider.
    The response is either ``ServiceProviderIntegratedIMPGetResponse21()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderIntegratedIMPModifyRequest(OCIRequest):
    """
    Modify the Integrated IMP service attributes for the service provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_service_domain",
            "useSystemServiceDomain",
            bool,
            False,
            False,
            False,
        ),
        E(
            "service_domain",
            "serviceDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_port",
            "servicePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_system_messaging_server",
            "useSystemMessagingServer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "provisioning_url",
            "provisioningUrl",
            str,
            False,
            False,
            False,
        ),
        E(
            "provisioning_user_id",
            "provisioningUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "provisioning_password",
            "provisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "bosh_url",
            "boshURL",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useSystemServiceDomain
    use_system_service_domain = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* serviceDomain
    service_domain = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* servicePort
    service_port = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useSystemMessagingServer
    use_system_messaging_server = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* provisioningUrl
    provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* provisioningUserId
    provisioning_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* provisioningPassword
    provisioning_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* boshURL
    bosh_url = Field(
        type=str,
        required=False,
    )


class ServiceProviderLDAPIntegrationGetDirectoryRequest(OCIRequest):
    """
    Get the LDAP directory attributes for a service provider.
    The response is either a ``ServiceProviderLDAPIntegrationGetDirectoryResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderLDAPIntegrationModifyDirectoryRequest(OCIRequest):
    """
    Modify the LDAP directory attributes for a service provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "server_net_address",
            "serverNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_base",
            "searchBase",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_ssl",
            "useSSL",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authenticated_dn",
            "authenticatedDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticated_password",
            "authenticatedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_sort_enabled",
            "isSortEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_paged_result_enabled",
            "isPagedResultEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_filter",
            "searchFilter",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_search_attribute_in_search_filter",
            "includeSearchAttributeInSearchFilter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "column1_attribute_name",
            "column1AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column2_attribute_name",
            "column2AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column3_attribute_name",
            "column3AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column4_attribute_name",
            "column4AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column1_label",
            "column1Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column2_label",
            "column2Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column3_label",
            "column3Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column4_label",
            "column4Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "search_column",
            "searchColumn",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serverNetAddress
    server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* searchBase
    search_base = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSSL
    use_ssl = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticatedDN
    authenticated_dn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* authenticatedPassword
    authenticated_password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isSortEnabled
    is_sort_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isPagedResultEnabled
    is_paged_result_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* searchFilter
    search_filter = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* includeSearchAttributeInSearchFilter
    include_search_attribute_in_search_filter = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* column1AttributeName
    column1_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column2AttributeName
    column2_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column3AttributeName
    column3_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column4AttributeName
    column4_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column1Label
    column1_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column2Label
    column2_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column3Label
    column3_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column4Label
    column4_label = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* searchColumn
    search_column = Field(
        type=int,
        required=False,
    )


class ServiceProviderLanguageAddRequest(OCIRequest):
    """
    Request to add a language for a service provder.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )


class ServiceProviderLanguageDeleteRequest(OCIRequest):
    """
    Request to delete a language from a service provider supported languages.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderLanguageGetListRequest(OCIRequest):
    """
    Request the defined languages for a service provider.
    The response is either a ``ServiceProviderLanguageGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "become_default_language",
            "becomeDefaultLanguage",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* becomeDefaultLanguage
    become_default_language = Field(
        type=bool,
        required=False,
    )


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateDeleteRequest(OCIRequest):
    """
    Delete a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateGetRequest(OCIRequest):
    """
    Request a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderMaliciousCallTraceGetRequest(OCIRequest):
    """
    Get the service provider's Malicious Call Trace settings.
    The response is either a ``ServiceProviderMaliciousCallTraceGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderMaliciousCallTraceModifyRequest(OCIRequest):
    """
    Modify the service provider's Malicious Call Trace settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_play_mct_warning_announcement",
            "useSystemPlayMCTWarningAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_mct_warning_announcement",
            "playMCTWarningAnnouncement",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useSystemPlayMCTWarningAnnouncement
    use_system_play_mct_warning_announcement = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playMCTWarningAnnouncement
    play_mct_warning_announcement = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderNetworkClassOfServiceModifyDefaultRequest(OCIRequest):
    """
    Modifies the default Network Classes of Service of a Service Provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )


class ServiceProviderNetworkClassOfServiceUnassignListRequest(OCIRequest):
    """
    Unassign a list of Network Classes of Service from a service provider.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )


class ServiceProviderNumberPortabilityQueryModifyRequest(OCIRequest):
    """
    Modify the Service Provider Number Portability Query information.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_number_portability_query_for_outgoing_calls",
            "enableNumberPortabilityQueryForOutgoingCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_number_portability_query_for_incoming_calls",
            "enableNumberPortabilityQueryForIncomingCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_number_portability_query_for_network_calls_only",
            "enableNumberPortabilityQueryForNetworkCallsOnly",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delete_digit_pattern",
            "deleteDigitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableNumberPortabilityQueryForOutgoingCalls
    enable_number_portability_query_for_outgoing_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNumberPortabilityQueryForIncomingCalls
    enable_number_portability_query_for_incoming_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNumberPortabilityQueryForNetworkCallsOnly
    enable_number_portability_query_for_network_calls_only = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* deleteDigitPattern
    delete_digit_pattern = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_office_zone_name",
            "defaultOfficeZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultOfficeZoneName
    default_office_zone_name = Field(
        type=str,
        required=False,
    )


class ServiceProviderOfficeZoneGetAssignedListRequest(OCIRequest):
    """
    Get a list of Office Zones assigned to a service provider.
    The response is either a ``ServiceProviderOfficeZoneGetAssignedListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_office_zone_name",
            "defaultOfficeZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultOfficeZoneName
    default_office_zone_name = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "rules_apply_to",
            "rulesApplyTo",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_id",
            "disallowUserId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "password_expires_days",
            "passwordExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_rules_modification",
            "disallowRulesModification",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* rulesApplyTo
    rules_apply_to = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowWebAddExternalAuthenticationUsers
    allow_web_add_external_authentication_users = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserId
    disallow_user_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* passwordExpiresDays
    password_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowRulesModification
    disallow_rules_modification = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "rules_apply_to",
            "rulesApplyTo",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_id",
            "disallowUserId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "password_expires_days",
            "passwordExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_previous_passwords",
            "disallowPreviousPasswords",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_previous_passwords",
            "numberOfPreviousPasswords",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* rulesApplyTo
    rules_apply_to = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowWebAddExternalAuthenticationUsers
    allow_web_add_external_authentication_users = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserId
    disallow_user_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* passwordExpiresDays
    password_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowPreviousPasswords
    disallow_previous_passwords = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfPreviousPasswords
    number_of_previous_passwords = Field(
        type=int,
        required=False,
    )


class ServiceProviderPortalPasscodeRulesGetRequest(OCIRequest):
    """
    Requests the service provider's passcode rules setting.
    The response is either ``ServiceProviderPortalPasscodeRulesGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderPortalPasscodeRulesGetRequest19(OCIRequest):
    """
    Requests the service provider's passcode rules setting.
    The response is either ``ServiceProviderPortalPasscodeRulesGetResponse19()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "disallow_repeated_digits",
            "disallowRepeatedDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_repeated_digits",
            "numberOfRepeatedDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_repeated_patterns",
            "disallowRepeatedPatterns",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_contiguous_sequences",
            "disallowContiguousSequences",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_ascending_digits",
            "numberOfAscendingDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "number_of_descending_digits",
            "numberOfDescendingDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_number",
            "disallowUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_user_number",
            "disallowReversedUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_passcode",
            "disallowOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_previous_passcodes",
            "numberOfPreviousPasscodes",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_passcode",
            "disallowReversedOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_code_length",
            "minCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_code_length",
            "maxCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "expire_password",
            "expirePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "passcode_expires_days",
            "passcodeExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* disallowRepeatedDigits
    disallow_repeated_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfRepeatedDigits
    number_of_repeated_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowRepeatedPatterns
    disallow_repeated_patterns = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowContiguousSequences
    disallow_contiguous_sequences = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfAscendingDigits
    number_of_ascending_digits = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* numberOfDescendingDigits
    number_of_descending_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowUserNumber
    disallow_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedUserNumber
    disallow_reversed_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPasscode
    disallow_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfPreviousPasscodes
    number_of_previous_passcodes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPasscode
    disallow_reversed_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minCodeLength
    min_code_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCodeLength
    max_code_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableLoginAfterMaxFailedLoginAttempts
    disable_login_after_max_failed_login_attempts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* expirePassword
    expire_password = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* passcodeExpiresDays
    passcode_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "intra_lata_carrier",
            "intraLataCarrier",
            str,
            False,
            False,
            False,
        ),
        E(
            "inter_lata_carrier",
            "interLataCarrier",
            str,
            False,
            False,
            False,
        ),
        E(
            "international_carrier",
            "internationalCarrier",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* intraLataCarrier
    intra_lata_carrier = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* interLataCarrier
    inter_lata_carrier = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* internationalCarrier
    international_carrier = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "intra_lata_carrier",
            "intraLataCarrier",
            str,
            False,
            False,
            False,
        ),
        E(
            "inter_lata_carrier",
            "interLataCarrier",
            str,
            False,
            False,
            False,
        ),
        E(
            "international_carrier",
            "internationalCarrier",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* intraLataCarrier
    intra_lata_carrier = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* interLataCarrier
    inter_lata_carrier = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* internationalCarrier
    international_carrier = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_range_start",
            "numberRangeStart",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* numberRangeStart
    number_range_start = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_range_start",
            "numberRangeStart",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* numberRangeStart
    number_range_start = Field(
        type=str,
        required=False,
    )


class ServiceProviderRouteListEnterpriseTrunkNumberRangeDeleteListRequest(OCIRequest):
    """
    Delete number ranges from a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_range_start",
            "numberRangeStart",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* numberRangeStart
    number_range_start = Field(
        type=str,
        required=False,
    )


class ServiceProviderRouteListEnterpriseTrunkNumberRangeGetAvailableListRequest(
    OCIRequest,
):
    """
    Request a list of available number ranges not yet assigned to any group.
    The response is either ``ServiceProviderRouteListEnterpriseTrunkNumberRangeGetAvailableListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(
    OCIRequest,
):
    """
    Request a summary table of all enterprise trunk number ranges in the service provider.
    The response is either ``ServiceProviderRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderRoutePointExternalSystemAssignListRequest(OCIRequest):
    """
    Assign a list of route point external systems to a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_point_external_system",
            "routePointExternalSystem",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routePointExternalSystem
    route_point_external_system = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderRoutePointExternalSystemUnassignListRequest(OCIRequest):
    """
    Unassign a list of route point external systems from a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_point_external_system",
            "routePointExternalSystem",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routePointExternalSystem
    route_point_external_system = Field(
        type=str,
        required=False,
    )


class ServiceProviderRoutingProfileGetRequest(OCIRequest):
    """
    Request the routing profile for the service provider/enterprise.
    The response is either a ``ServiceProviderRoutingProfileGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderRoutingProfileModifyRequest(OCIRequest):
    """
    Requests to modify the routing profile for a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "routing_profile",
            "routingProfile",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routingProfile
    routing_profile = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_service_provider_settings",
            "useServiceProviderSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_authentication_name",
            "disallowAuthenticationName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_permanent_lockout_notification",
            "sendPermanentLockoutNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_authentication_lockout_type",
            "endpointAuthenticationLockoutType",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_temporary_lockout_threshold",
            "endpointTemporaryLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "endpoint_wait_algorithm",
            "endpointWaitAlgorithm",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_lockout_fixed_minutes",
            "endpointLockoutFixedMinutes",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_permanent_lockout_threshold",
            "endpointPermanentLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_authentication_lockout_type",
            "trunkGroupAuthenticationLockoutType",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_temporary_lockout_threshold",
            "trunkGroupTemporaryLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_wait_algorithm",
            "trunkGroupWaitAlgorithm",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_lockout_fixed_minutes",
            "trunkGroupLockoutFixedMinutes",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_permanent_lockout_threshold",
            "trunkGroupPermanentLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useServiceProviderSettings
    use_service_provider_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowAuthenticationName
    disallow_authentication_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendPermanentLockoutNotification
    send_permanent_lockout_notification = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* permanentLockoutNotifyEmailAddress
    permanent_lockout_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* endpointAuthenticationLockoutType
    endpoint_authentication_lockout_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* endpointTemporaryLockoutThreshold
    endpoint_temporary_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* endpointWaitAlgorithm
    endpoint_wait_algorithm = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* endpointLockoutFixedMinutes
    endpoint_lockout_fixed_minutes = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* endpointPermanentLockoutThreshold
    endpoint_permanent_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* trunkGroupAuthenticationLockoutType
    trunk_group_authentication_lockout_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* trunkGroupTemporaryLockoutThreshold
    trunk_group_temporary_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* trunkGroupWaitAlgorithm
    trunk_group_wait_algorithm = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupLockoutFixedMinutes
    trunk_group_lockout_fixed_minutes = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* trunkGroupPermanentLockoutThreshold
    trunk_group_permanent_lockout_threshold = Field(
        type=int,
        required=False,
    )


class ServiceProviderScheduleAddRequest(OCIRequest):
    """
    Add a service provider schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_name",
            "scheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleName
    schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleType
    schedule_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* scheduleType
    schedule_type = Field(
        type=str,
        required=False,
    )


class ServiceProviderServiceGetAuthorizationListRequest(OCIRequest):
    """
    Requests the service provider's service authorization status.
    The response is either ``ServiceProviderServiceGetAuthorizationListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackDeleteRequest(OCIRequest):
    """
    Request to delete a service pack from a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackGetDetailListRequest(OCIRequest):
    """
    Request to get a service pack details.
    The response is either ``ServiceProviderServicePackGetDetailListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackGetListRequest(OCIRequest):
    """
    Request to get a list of defined service packs for a service provider.
    The response is either ``ServiceProviderServicePackGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackGetServiceUsageListRequest(OCIRequest):
    """
    Request to get the list of service packs containing a specified service.
    The response is either ``ServiceProviderServicePackGetServiceUsageListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackMigrationTaskAddRequest(OCIRequest):
    """
    Create a service pack migration task.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``ServiceProviderServicePackMigrationTaskAddRequest21()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "start_timestamp",
            "startTimestamp",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_duration_hours",
            "maxDurationHours",
            int,
            False,
            True,
            False,
        ),
        E(
            "send_report_email",
            "sendReportEmail",
            bool,
            False,
            True,
            False,
        ),
        E(
            "report_delivery_email_address",
            "reportDeliveryEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "abort_on_error",
            "abortOnError",
            bool,
            False,
            True,
            False,
        ),
        E(
            "abort_error_threshold",
            "abortErrorThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "report_all_users",
            "reportAllUsers",
            bool,
            False,
            True,
            False,
        ),
        E(
            "automatically_increment_service_quantity",
            "automaticallyIncrementServiceQuantity",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* startTimestamp
    start_timestamp = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maxDurationHours
    max_duration_hours = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* sendReportEmail
    send_report_email = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* reportDeliveryEmailAddress
    report_delivery_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* abortOnError
    abort_on_error = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* abortErrorThreshold
    abort_error_threshold = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* reportAllUsers
    report_all_users = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* automaticallyIncrementServiceQuantity
    automatically_increment_service_quantity = Field(
        type=bool,
        required=True,
    )


class ServiceProviderServicePackMigrationTaskAddRequest21(OCIRequest):
    """
    Create a service pack migration task.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "start_timestamp",
            "startTimestamp",
            str,
            False,
            True,
            False,
        ),
        E(
            "expire_after_num_hours",
            "expireAfterNumHours",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_duration_hours",
            "maxDurationHours",
            int,
            False,
            True,
            False,
        ),
        E(
            "send_report_email",
            "sendReportEmail",
            bool,
            False,
            True,
            False,
        ),
        E(
            "report_delivery_email_address",
            "reportDeliveryEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "abort_on_error",
            "abortOnError",
            bool,
            False,
            True,
            False,
        ),
        E(
            "abort_error_threshold",
            "abortErrorThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "report_all_users",
            "reportAllUsers",
            bool,
            False,
            True,
            False,
        ),
        E(
            "automatically_increment_service_quantity",
            "automaticallyIncrementServiceQuantity",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* startTimestamp
    start_timestamp = Field(
        type=str,
        required=True,
    )
    #: int: *Required* expireAfterNumHours
    expire_after_num_hours = Field(
        type=int,
        required=True,
    )
    #: int: *Required* maxDurationHours
    max_duration_hours = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* sendReportEmail
    send_report_email = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* reportDeliveryEmailAddress
    report_delivery_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* abortOnError
    abort_on_error = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* abortErrorThreshold
    abort_error_threshold = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* reportAllUsers
    report_all_users = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* automaticallyIncrementServiceQuantity
    automatically_increment_service_quantity = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackMigrationTaskGetListRequest21(OCIRequest):
    """
    Requests a list of all service pack migration tasks for a service provider.
    The response is either ``ServiceProviderServicePackMigrationTaskGetListResponse21()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackMigrationTaskGetRequest(OCIRequest):
    """
    Requests the details of a specified service pack migration task.
    The response is either ``ServiceProviderServicePackMigrationTaskGetResponse()``
    or ``ErrorResponse()``.
    Replaced By ``ServiceProviderServicePackMigrationTaskGetRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackMigrationTaskGetRequest14sp4(OCIRequest):
    """
    Requests the details of a specified service pack migration task.
    The response is either ``ServiceProviderServicePackMigrationTaskGetResponse14sp4()``
    or ``ErrorResponse()``.
    Replaced By ``ServiceProviderServicePackMigrationTaskGetRequest21()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePackMigrationTaskGetRequest21(OCIRequest):
    """
    Requests the details of a specified service pack migration task.
    The response is either ``ServiceProviderServicePackMigrationTaskGetResponse21()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "migrate_all_groups",
            "migrateAllGroups",
            bool,
            False,
            True,
            False,
        ),
        E(
            "group_id_list",
            "groupIdList",
            str,
            True,
            False,
            False,
        ),  # unknown
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* migrateAllGroups
    migrate_all_groups = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* groupIdList
    group_id_list = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_task_name",
            "newTaskName",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_timestamp",
            "startTimestamp",
            str,
            False,
            False,
            False,
        ),
        E(
            "expire_after_num_hours",
            "expireAfterNumHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_duration_hours",
            "maxDurationHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_report_email",
            "sendReportEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "report_delivery_email_address",
            "reportDeliveryEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "abort_on_error",
            "abortOnError",
            bool,
            False,
            False,
            False,
        ),
        E(
            "abort_error_threshold",
            "abortErrorThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "report_all_users",
            "reportAllUsers",
            bool,
            False,
            False,
            False,
        ),
        E(
            "automatically_increment_service_quantity",
            "automaticallyIncrementServiceQuantity",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newTaskName
    new_task_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startTimestamp
    start_timestamp = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* expireAfterNumHours
    expire_after_num_hours = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxDurationHours
    max_duration_hours = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendReportEmail
    send_report_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* reportDeliveryEmailAddress
    report_delivery_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* abortOnError
    abort_on_error = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* abortErrorThreshold
    abort_error_threshold = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* reportAllUsers
    report_all_users = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* automaticallyIncrementServiceQuantity
    automatically_increment_service_quantity = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderServicePhoneNumberLookupRequest(OCIRequest):
    """
    Lookup if the given number is defined in the specified service in the service provider.
    The response is ``ServiceProviderServicePhoneNumberLookupResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_type",
            "serviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceType
    service_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class ServiceProviderSessionAdmissionControlGetRequest(OCIRequest):
    """
    Get the session admission control capacity for the service provider.
    The response is either a ``ServiceProviderSessionAdmissionControlGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderSessionAdmissionControlModifyRequest(OCIRequest):
    """
    Request to modify session admission control capacity for the service provider.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "restrict_aggregate_sessions",
            "restrictAggregateSessions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_sessions",
            "maxSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "count_intra_service_provider_sessions",
            "countIntraServiceProviderSessions",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* restrictAggregateSessions
    restrict_aggregate_sessions = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSessions
    max_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* countIntraServiceProviderSessions
    count_intra_service_provider_sessions = Field(
        type=bool,
        required=False,
    )


class ServiceProviderSessionAdmissionControlWhiteListGetRequest(OCIRequest):
    """
    Request to get the Service Provider Session Admission White List information.
    The response is either a ``ServiceProviderSessionAdmissionControlWhiteListGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_match_digit_pattern",
            "addMatchDigitPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "delete_match_digit_pattern",
            "deleteMatchDigitPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_white_list",
            "enableWhiteList",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* addMatchDigitPattern
    add_match_digit_pattern = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deleteMatchDigitPattern
    delete_match_digit_pattern = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableWhiteList
    enable_white_list = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderVoiceMessagingGroupGetPasscodeRulesRequest(OCIRequest):
    """
    Requests the service provider's voice portal passcode rules setting.
    The response is either ``ServiceProviderVoiceMessagingGroupGetPasscodeRulesResponse()``
    or ``ErrorResponse()``.
    Replaced By ``ServiceProviderPortalPasscodeRulesGetRequest()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderVoiceMessagingGroupGetRequest(OCIRequest):
    """
    Requests the service provider's or enterprise's voice messaging settings.
    The response is either ``ServiceProviderVoiceMessagingGroupGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingRequest(OCIRequest):
    """
    Get the service provider's voice portal branding settings.
    The response is either a ``ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingResponse()``
    or an ``ErrorResponse()``.
    Replaced By ``ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingRequest16(OCIRequest):
    """
    Get the service provider's voice portal branding settings.
    The response is either a ``ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingResponse16()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderVoiceMessagingGroupGetVoicePortalRequest(OCIRequest):
    """
    Requests the service provider's or enterprise's voice portal settings.
    The response is either ``ServiceProviderVoiceMessagingGroupGetVoicePortalResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "disallow_repeated_digits",
            "disallowRepeatedDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_number",
            "disallowUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_user_number",
            "disallowReversedUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_passcode",
            "disallowOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_passcode",
            "disallowReversedOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_code_length",
            "minCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_code_length",
            "maxCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "expire_password",
            "expirePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "passcode_expires_days",
            "passcodeExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* disallowRepeatedDigits
    disallow_repeated_digits = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserNumber
    disallow_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedUserNumber
    disallow_reversed_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPasscode
    disallow_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPasscode
    disallow_reversed_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minCodeLength
    min_code_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCodeLength
    max_code_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableLoginAfterMaxFailedLoginAttempts
    disable_login_after_max_failed_login_attempts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* expirePassword
    expire_password = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* passcodeExpiresDays
    passcode_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )


class ServiceProviderVoiceMessagingGroupModifyRequest(OCIRequest):
    """
    Request to modify a service provider's or enterprise's voice messaging settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "delivery_from_address",
            "deliveryFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "notification_from_address",
            "notificationFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_lockout_from_address",
            "voicePortalLockoutFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_delivery_from_address",
            "useSystemDefaultDeliveryFromAddress",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_notification_from_address",
            "useSystemDefaultNotificationFromAddress",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_voice_portal_lockout_from_address",
            "useSystemDefaultVoicePortalLockoutFromAddress",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* deliveryFromAddress
    delivery_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* notificationFromAddress
    notification_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voicePortalLockoutFromAddress
    voice_portal_lockout_from_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultDeliveryFromAddress
    use_system_default_delivery_from_address = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultNotificationFromAddress
    use_system_default_notification_from_address = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultVoicePortalLockoutFromAddress
    use_system_default_voice_portal_lockout_from_address = Field(
        type=bool,
        required=False,
    )


class ServiceProviderVoiceMessagingGroupModifyVoicePortalRequest(OCIRequest):
    """
    Request to change the service provider's or enterprise's voice portal settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_scope",
            "voicePortalScope",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* voicePortalScope
    voice_portal_scope = Field(
        type=str,
        required=False,
    )


class ServiceProviderZoneCallingRestrictionsGetRequest(OCIRequest):
    """
    Gets the Service Provider/Enterprise level Zone Calling Restrictions Policies.
    The response is ``ServiceProviderZoneCallingRestrictionsGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )


class ServiceProviderZoneCallingRestrictionsModifyRequest(OCIRequest):
    """
    Modifies the Service Provider/Enterprise level Zone Calling Restrictions Policies.
    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_zone_calling_restrictions",
            "enableZoneCallingRestrictions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_origination_roaming_restrictions",
            "enableOriginationRoamingRestrictions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_emergency_origination_roaming_restrictions",
            "enableEmergencyOriginationRoamingRestrictions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_termination_roaming_restrictions",
            "enableTerminationRoamingRestrictions",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableZoneCallingRestrictions
    enable_zone_calling_restrictions = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableOriginationRoamingRestrictions
    enable_origination_roaming_restrictions = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEmergencyOriginationRoamingRestrictions
    enable_emergency_origination_roaming_restrictions = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableTerminationRoamingRestrictions
    enable_termination_roaming_restrictions = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "max_transmissions",
            "maxTransmissions",
            int,
            False,
            False,
            False,
        ),
        E(
            "retransmission_delay_milli_seconds",
            "retransmissionDelayMilliSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "listening_port",
            "listeningPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "source_address",
            "sourceAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxTransmissions
    max_transmissions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* retransmissionDelayMilliSeconds
    retransmission_delay_milli_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* listeningPort
    listening_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* sourceAddress
    source_address = Field(
        type=str,
        required=False,
    )


class SystemASRParametersModifyRequest14sp7(OCIRequest):
    """
    Request to modify Application Server Registration system parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "max_transmissions",
            "maxTransmissions",
            int,
            False,
            False,
            False,
        ),
        E(
            "retransmission_delay_milli_seconds",
            "retransmissionDelayMilliSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "listening_port",
            "listeningPort",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxTransmissions
    max_transmissions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* retransmissionDelayMilliSeconds
    retransmission_delay_milli_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* listeningPort
    listening_port = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class SystemAccessDeviceCustomTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags for a system access device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceCustomTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag for a system access device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class SystemAccessDeviceDeleteRequest(OCIRequest):
    """
    Request to delete a specified system access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a device profile file.
    The response is either ``SystemAccessDeviceFileGetResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemAccessDeviceFileGetRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceFileGetRequest14sp8(OCIRequest):
    """
    Request to get a device profile file.
    The response is either ``SystemAccessDeviceFileGetResponse14sp8()`` or
    ``ErrorResponse()``.
    Replaced By ``SystemAccessDeviceFileGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceFileGetRequest16sp1(OCIRequest):
    """
    Request to get a device profile file.
    The response is either ``SystemAccessDeviceFileGetResponse16sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceFileGetRequest20(OCIRequest):
    """
    Request to get a device profile file.
    The response is either ``SystemAccessDeviceFileGetResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceGetRequest(OCIRequest):
    """
    Requests the configuration of a specified system access device.
    The response is either ``SystemAccessDeviceGetResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemAccessDeviceGetRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceGetRequest14sp3(OCIRequest):
    """
    Requests the configuration of a specified system access device.
    The response is either ``SystemAccessDeviceGetResponse14sp3()`` or ``ErrorResponse()``.
    Replaced By ``SystemAccessDeviceGetRequest14sp6()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceGetRequest14sp6(OCIRequest):
    """
    Requests the configuration of a specified system access device.
    The response is either ``SystemAccessDeviceGetResponse14sp6()`` or ``ErrorResponse()``.
    Replaced By ``SystemAccessDeviceGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceGetRequest16(OCIRequest):
    """
    Requests the configuration of a specified system access device.
    The response is either ``SystemAccessDeviceGetResponse16()`` or ``ErrorResponse()``.

    Replaced By ``SystemAccessDeviceGetRequest19()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceGetRequest18sp1(OCIRequest):
    """
    Requests the configuration of a specified system access device.
    The response is either ``SystemAccessDeviceGetResponse18sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_port",
            "linePort",
            str,
            False,
            True,
            False,
        ),
        E(
            "private_identity",
            "privateIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_primary_line_port",
            "isPrimaryLinePort",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* linePort
    line_port = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* privateIdentity
    private_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isPrimaryLinePort
    is_primary_line_port = Field(
        type=bool,
        required=False,
    )


class SystemAccessDeviceMonitorAddDeviceTypeRequest(OCIRequest):
    """
    Add a device type to be monitored.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "add_all_device_types",
            "addAllDeviceTypes",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* addAllDeviceTypes
    add_all_device_types = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemAccessDeviceMonitorDeleteDeviceTypeRequest(OCIRequest):
    """
    Remove a device type to be monitored.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "delete_all_device_types",
            "deleteAllDeviceTypes",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* deleteAllDeviceTypes
    delete_all_device_types = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "polling_interval_minutes",
            "pollingIntervalMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* pollingIntervalMinutes
    polling_interval_minutes = Field(
        type=int,
        required=False,
    )


class SystemAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific system SIP device that supports the reset operation.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "address",
            "address",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_net_address_extended",
            "isNetAddressExtended",
            bool,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* address
    address = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isNetAddressExtended
    is_net_address_extended = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemAccountingAddRadiusServerRequest(OCIRequest):
    """
    Request to add a Radius Server to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemAccountingDeleteChargingFunctionElementServerRequest(OCIRequest):
    """
    Request to delete a ChargingFunctionElementServer from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "address",
            "address",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* address
    address = Field(
        type=str,
        required=True,
    )


class SystemAccountingDeleteRadiusServerRequest(OCIRequest):
    """
    Request to delete a Radius Server from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "attribute_value_pair_code",
            "attributeValuePairCode",
            int,
            False,
            True,
            False,
        ),
        E(
            "vendor_id",
            "vendorId",
            int,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* attributeValuePairCode
    attribute_value_pair_code = Field(
        type=int,
        required=True,
    )
    #: int: *Required* vendorId
    vendor_id = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "attribute_value_pair_code",
            "attributeValuePairCode",
            int,
            False,
            True,
            False,
        ),
        E(
            "vendor_id",
            "vendorId",
            int,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* attributeValuePairCode
    attribute_value_pair_code = Field(
        type=int,
        required=True,
    )
    #: int: *Required* vendorId
    vendor_id = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "address",
            "address",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* address
    address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* type
    type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemAccountingModifyRadiusServerRequest(OCIRequest):
    """
    Request to modify a Radius Server in the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "ordered_address_list",
            "orderedAddressList",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* orderedAddressList
    ordered_address_list = Field(
        type=str,
        required=True,
    )


class SystemAdminAddRequest(OCIRequest):
    """
    Add a system or provisioning administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "admin_type",
            "adminType",
            str,
            False,
            True,
            False,
        ),
        E(
            "read_only",
            "readOnly",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Required* password
    password = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Required* adminType
    admin_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* readOnly
    read_only = Field(
        type=bool,
        required=True,
    )


class SystemAdminDeleteRequest(OCIRequest):
    """
    Delete a system or provisioning administrator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )


class SystemAdviceOfChargeCostInformationSourceAddRequest(OCIRequest):
    """
    Add a cost information source. The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "peer_identity",
            "peerIdentity",
            str,
            False,
            True,
            False,
        ),
        E(
            "priority",
            "priority",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* peerIdentity
    peer_identity = Field(
        type=str,
        required=True,
    )
    #: int: *Required* priority
    priority = Field(
        type=int,
        required=True,
    )


class SystemAdviceOfChargeCostInformationSourceDeleteRequest(OCIRequest):
    """
    Delete a cost information source.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "peer_identity",
            "peerIdentity",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* peerIdentity
    peer_identity = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "peer_identity",
            "peerIdentity",
            str,
            False,
            True,
            False,
        ),
        E(
            "priority",
            "priority",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* peerIdentity
    peer_identity = Field(
        type=str,
        required=True,
    )
    #: int: *Required* priority
    priority = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "delay_between_notification_seconds",
            "delayBetweenNotificationSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_aoc_handling",
            "incomingAocHandling",
            str,
            False,
            False,
            False,
        ),
        E(
            "cost_information_source",
            "costInformationSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* delayBetweenNotificationSeconds
    delay_between_notification_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* incomingAocHandling
    incoming_aoc_handling = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* costInformationSource
    cost_information_source = Field(
        type=str,
        required=False,
    )


class SystemAdviceOfChargeModifyRequest19sp1(OCIRequest):
    """
    Request to modify Advice of Charge system parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "delay_between_notification_seconds",
            "delayBetweenNotificationSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_aoc_handling",
            "incomingAocHandling",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_ocs_enquiry",
            "useOCSEnquiry",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ocs_enquiry_type",
            "OCSEnquiryType",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* delayBetweenNotificationSeconds
    delay_between_notification_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* incomingAocHandling
    incoming_aoc_handling = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useOCSEnquiry
    use_ocs_enquiry = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* OCSEnquiryType
    ocs_enquiry_type = Field(
        type=str,
        required=False,
    )


class SystemAliasAddRequest(OCIRequest):
    """
    Add a system-level Application Server alias to the system.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "alias_net_address",
            "aliasNetAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* aliasNetAddress
    alias_net_address = Field(
        type=str,
        required=True,
    )


class SystemAliasDeleteRequest(OCIRequest):
    """
    Delete a system-level Application Server alias from the system.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "alias_net_address",
            "aliasNetAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* aliasNetAddress
    alias_net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "pai_required",
            "paiRequired",
            bool,
            False,
            False,
            False,
        ),
        E(
            "screen_only_local_calls",
            "screenOnlyLocalCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* paiRequired
    pai_required = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* screenOnlyLocalCalls
    screen_only_local_calls = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "subscriber_id",
            "subscriberId",
            str,
            False,
            True,
            False,
        ),
        E(
            "channel_set_id",
            "channelSetId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* subscriberId
    subscriber_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* channelSetId
    channel_set_id = Field(
        type=str,
        required=True,
    )


class SystemApplicationControllerDeleteRequest(OCIRequest):
    """
    Delete an application controller.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "max_monitored_users",
            "maxMonitoredUsers",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxMonitoredUsers
    max_monitored_users = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "file_name",
            "fileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileName
    file_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "counter_reset_interval_days",
            "counterResetIntervalDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "counter_reset_hour",
            "counterResetHour",
            int,
            False,
            False,
            False,
        ),
        E(
            "counter_reset_minute",
            "counterResetMinute",
            int,
            False,
            False,
            False,
        ),
        E(
            "emergency_sip_bypass_allowed",
            "emergencySIPBypassAllowed",
            bool,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* counterResetIntervalDays
    counter_reset_interval_days = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* counterResetHour
    counter_reset_hour = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* counterResetMinute
    counter_reset_minute = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* emergencySIPBypassAllowed
    emergency_sip_bypass_allowed = Field(
        type=bool,
        required=False,
    )


class SystemAutomaticCallbackAddReleaseCauseListRequest(OCIRequest):
    """
    Adds automatic callback release cause to the releaseCause attribute.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "release_cause",
            "releaseCause",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* releaseCause
    release_cause = Field(
        type=str,
        required=False,
    )


class SystemAutomaticCallbackDeleteReleaseCauseListRequest(OCIRequest):
    """
    Deletes automatic callback release causes from the release cause attribute.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "release_cause",
            "releaseCause",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* releaseCause
    release_cause = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "monitor_minutes",
            "monitorMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "wait_between_retry_originator_minutes",
            "waitBetweenRetryOriginatorMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_monitors_per_originator",
            "maxMonitorsPerOriginator",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_callback_rings",
            "maxCallbackRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_retry_originator_minutes",
            "maxRetryOriginatorMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* monitorMinutes
    monitor_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* waitBetweenRetryOriginatorMinutes
    wait_between_retry_originator_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMonitorsPerOriginator
    max_monitors_per_originator = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCallbackRings
    max_callback_rings = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRetryOriginatorMinutes
    max_retry_originator_minutes = Field(
        type=int,
        required=False,
    )


class SystemAutomaticCallbackModifyRequest15(OCIRequest):
    """
    Modifies the system's automatic callback attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "monitor_minutes",
            "monitorMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_monitors_per_originator",
            "maxMonitorsPerOriginator",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_callback_rings",
            "maxCallbackRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_monitors_per_terminator",
            "maxMonitorsPerTerminator",
            int,
            False,
            False,
            False,
        ),
        E(
            "terminator_idle_guard_seconds",
            "terminatorIdleGuardSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "callback_method",
            "callbackMethod",
            str,
            False,
            False,
            False,
        ),
        E(
            "polling_interval_seconds",
            "pollingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "activation_digit",
            "activationDigit",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* monitorMinutes
    monitor_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMonitorsPerOriginator
    max_monitors_per_originator = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCallbackRings
    max_callback_rings = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMonitorsPerTerminator
    max_monitors_per_terminator = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* terminatorIdleGuardSeconds
    terminator_idle_guard_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* callbackMethod
    callback_method = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* pollingIntervalSeconds
    polling_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* activationDigit
    activation_digit = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "interface_net_address",
            "interfaceNetAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* interfaceNetAddress
    interface_net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "interface_net_address",
            "interfaceNetAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* interfaceNetAddress
    interface_net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "provisioning_url",
            "provisioningUrl",
            str,
            False,
            False,
            False,
        ),
        E(
            "provisioning_user_id",
            "provisioningUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "provisioning_password",
            "provisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_synchronization",
            "enableSynchronization",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* provisioningUrl
    provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* provisioningUserId
    provisioning_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* provisioningPassword
    provisioning_password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableSynchronization
    enable_synchronization = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "scf_api_net_address1",
            "scfApiNetAddress1",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_api_net_address2",
            "scfApiNetAddress2",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_from_address",
            "emailFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_ims_only",
            "scfIMSOnly",
            bool,
            False,
            False,
            False,
        ),
        E(
            "signaling_ip_address",
            "signalingIPAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "signaling_port",
            "signalingPort",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* scfApiNetAddress1
    scf_api_net_address1 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* scfApiNetAddress2
    scf_api_net_address2 = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userName
    user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailFromAddress
    email_from_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* scfIMSOnly
    scf_ims_only = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* signalingIPAddress
    signaling_ip_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* signalingPort
    signaling_port = Field(
        type=int,
        required=False,
    )


class SystemBroadWorksMobilityDeleteIMRNListRequest(OCIRequest):
    """
    Removes a BroadWorks Mobility IMRN number from the system.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "imrn_number",
            "imrnNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* imrnNumber
    imrn_number = Field(
        type=str,
        required=True,
    )


class SystemBroadWorksMobilityDeleteMobileNetworkIMRNListRequest(OCIRequest):
    """
    Remove BroadWorks Mobility IMRN numbers from a Mobile Network.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "mobile_network_name",
            "mobileNetworkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "imrn_number",
            "imrnNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* mobileNetworkName
    mobile_network_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* imrnNumber
    imrn_number = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "scf_signaling_net_address",
            "scfSignalingNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_port",
            "scfSignalingPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "refresh_period_seconds",
            "refreshPeriodSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_consecutive_failures",
            "maxConsecutiveFailures",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_response_wait_time_milliseconds",
            "maxResponseWaitTimeMilliseconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_announcement_suppression",
            "enableAnnouncementSuppression",
            bool,
            False,
            True,
            False,
        ),
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* scfSignalingNetAddress
    scf_signaling_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* scfSignalingPort
    scf_signaling_port = Field(
        type=int,
        required=False,
    )
    #: int: *Required* refreshPeriodSeconds
    refresh_period_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* maxConsecutiveFailures
    max_consecutive_failures = Field(
        type=int,
        required=True,
    )
    #: int: *Required* maxResponseWaitTimeMilliseconds
    max_response_wait_time_milliseconds = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableAnnouncementSuppression
    enable_announcement_suppression = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=False,
    )


class SystemBroadWorksMobilityMobileNetworkDeleteRequest(OCIRequest):
    """
    Delete a Mobile Network.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemBroadWorksMobilityMobileNetworkModifyRequest(OCIRequest):
    """
    Modify a Mobile Network.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_net_address",
            "scfSignalingNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_port",
            "scfSignalingPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "refresh_period_seconds",
            "refreshPeriodSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_consecutive_failures",
            "maxConsecutiveFailures",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_response_wait_time_milliseconds",
            "maxResponseWaitTimeMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_announcement_suppression",
            "enableAnnouncementSuppression",
            bool,
            False,
            False,
            False,
        ),
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* scfSignalingNetAddress
    scf_signaling_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* scfSignalingPort
    scf_signaling_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* refreshPeriodSeconds
    refresh_period_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxConsecutiveFailures
    max_consecutive_failures = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxResponseWaitTimeMilliseconds
    max_response_wait_time_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAnnouncementSuppression
    enable_announcement_suppression = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=False,
    )


class SystemBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobility system parameters.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By ``SystemBroadWorksMobilityModifyRequest17sp4()``.
    """

    _ELEMENTS = (
        E(
            "enable_location_services",
            "enableLocationServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_msrn_lookup",
            "enableMSRNLookup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_mobile_state_checking",
            "enableMobileStateChecking",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "imrn_timeout_milliseconds",
            "imrnTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_ip_address",
            "scfSignalingIPAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_port",
            "scfSignalingPort",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableLocationServices
    enable_location_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMSRNLookup
    enable_msrn_lookup = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMobileStateChecking
    enable_mobile_state_checking = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* imrnTimeoutMilliseconds
    imrn_timeout_milliseconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* scfSignalingIPAddress
    scf_signaling_ip_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* scfSignalingPort
    scf_signaling_port = Field(
        type=int,
        required=False,
    )


class SystemBroadWorksMobilityModifyRequest17sp4(OCIRequest):
    """
    Modify the BroadWorks Mobility system parameters.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced by ``SystemBroadWorksMobilityModifyRequest21()``.
    """

    _ELEMENTS = (
        E(
            "enable_location_services",
            "enableLocationServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_msrn_lookup",
            "enableMSRNLookup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_mobile_state_checking",
            "enableMobileStateChecking",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "imrn_timeout_milliseconds",
            "imrnTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_net_address",
            "scfSignalingNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "scf_signaling_port",
            "scfSignalingPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "refresh_period_seconds",
            "refreshPeriodSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_consecutive_failures",
            "maxConsecutiveFailures",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_response_wait_time_milliseconds",
            "maxResponseWaitTimeMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_announcement_suppression",
            "enableAnnouncementSuppression",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableLocationServices
    enable_location_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMSRNLookup
    enable_msrn_lookup = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMobileStateChecking
    enable_mobile_state_checking = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* imrnTimeoutMilliseconds
    imrn_timeout_milliseconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* scfSignalingNetAddress
    scf_signaling_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* scfSignalingPort
    scf_signaling_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* refreshPeriodSeconds
    refresh_period_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxConsecutiveFailures
    max_consecutive_failures = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxResponseWaitTimeMilliseconds
    max_response_wait_time_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAnnouncementSuppression
    enable_announcement_suppression = Field(
        type=bool,
        required=False,
    )


class SystemBroadWorksMobilityModifyRequest21(OCIRequest):
    """
    Modify the BroadWorks Mobility system parameters.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "enable_location_services",
            "enableLocationServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_msrn_lookup",
            "enableMSRNLookup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_mobile_state_checking",
            "enableMobileStateChecking",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "imrn_timeout_milliseconds",
            "imrnTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableLocationServices
    enable_location_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMSRNLookup
    enable_msrn_lookup = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableMobileStateChecking
    enable_mobile_state_checking = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* imrnTimeoutMilliseconds
    imrn_timeout_milliseconds = Field(
        type=int,
        required=False,
    )


class SystemBroadWorksMobilityServiceAccessCodeAddRequest(OCIRequest):
    """
    Add a system service access code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced by ``SystemBroadWorksMobilityServiceAccessCodeAddRequest21()``.
    """

    _ELEMENTS = (
        E(
            "service_access_code",
            "serviceAccessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceAccessCode
    service_access_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemBroadWorksMobilityServiceAccessCodeAddRequest21(OCIRequest):
    """
    Add a service access code to a list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_access_code",
            "serviceAccessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceAccessCode
    service_access_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemBroadWorksMobilityServiceAccessCodeDeleteRequest(OCIRequest):
    """
    Delete a system service access code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced by ``SystemBroadWorksMobilityServiceAccessCodeDeleteRequest21()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_access_code",
            "serviceAccessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceAccessCode
    service_access_code = Field(
        type=str,
        required=True,
    )


class SystemBroadWorksMobilityServiceAccessCodeDeleteRequest21(OCIRequest):
    """
    Delete a service access code from a list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_access_code",
            "serviceAccessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceAccessCode
    service_access_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=True,
    )


class SystemBroadWorksMobilityServiceAccessCodeListAddRequest(OCIRequest):
    """
    Add a Service Access Code list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemBroadWorksMobilityServiceAccessCodeListDeleteRequest(OCIRequest):
    """
    Delete a Service Access Code list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )


class SystemBroadWorksMobilityServiceAccessCodeListUsageGetRequest(OCIRequest):
    """
    Get all the Mobile Networks using a given Service Access Code list.
    The response is either ``SystemBroadWorksMobilityServiceAccessCodeListUsageGetResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=True,
    )


class SystemBroadWorksMobilityServiceAccessCodeModifyRequest(OCIRequest):
    """
    Modify a system service access code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced by ``SystemBroadWorksMobilityServiceAccessCodeModifyRequest21()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_access_code",
            "serviceAccessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceAccessCode
    service_access_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemBroadWorksMobilityServiceAccessCodeModifyRequest21(OCIRequest):
    """
    Modify a service access code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name",
            "serviceAccessCodeListName",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_access_code",
            "serviceAccessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceAccessCodeListName
    service_access_code_list_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceAccessCode
    service_access_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "max_monitored_users",
            "maxMonitoredUsers",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxMonitoredUsers
    max_monitored_users = Field(
        type=int,
        required=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
    """

    _ELEMENTS = (
        E(
            "display_local_user_identity_last_name_first",
            "displayLocalUserIdentityLastNameFirst",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_use_of_tcp",
            "forceUseOfTCP",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* displayLocalUserIdentityLastNameFirst
    display_local_user_identity_last_name_first = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceUseOfTCP
    force_use_of_tcp = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "xs_realm",
            "xsRealm",
            str,
            False,
            False,
            False,
        ),
        E(
            "xs_listening_port",
            "xsListeningPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "ps_realm",
            "psRealm",
            str,
            False,
            False,
            False,
        ),
        E(
            "ps_listening_port",
            "psListeningPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "ps_relay_through_xs",
            "psRelayThroughXs",
            bool,
            False,
            False,
            False,
        ),
        E(
            "xs_relay_listening_port",
            "xsRelayListeningPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "tc_timer_seconds",
            "tcTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "tw_timer_seconds",
            "twTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "request_timer_seconds",
            "requestTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "busy_peer_detection_outstanding_txn_count",
            "busyPeerDetectionOutstandingTxnCount",
            int,
            False,
            False,
            False,
        ),
        E(
            "busy_peer_restore_outstanding_txn_count",
            "busyPeerRestoreOutstandingTxnCount",
            int,
            False,
            False,
            False,
        ),
        E(
            "dynamic_entry_inactivity_timer_hours",
            "dynamicEntryInactivityTimerHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "advertised_offline_billing_application",
            "advertisedOfflineBillingApplication",
            str,
            False,
            False,
            False,
        ),
        E(
            "advertised_online_billing_application",
            "advertisedOnlineBillingApplication",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* xsRealm
    xs_realm = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* xsListeningPort
    xs_listening_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* psRealm
    ps_realm = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* psListeningPort
    ps_listening_port = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* psRelayThroughXs
    ps_relay_through_xs = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* xsRelayListeningPort
    xs_relay_listening_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* tcTimerSeconds
    tc_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* twTimerSeconds
    tw_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* requestTimerSeconds
    request_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* busyPeerDetectionOutstandingTxnCount
    busy_peer_detection_outstanding_txn_count = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* busyPeerRestoreOutstandingTxnCount
    busy_peer_restore_outstanding_txn_count = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* dynamicEntryInactivityTimerHours
    dynamic_entry_inactivity_timer_hours = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* advertisedOfflineBillingApplication
    advertised_offline_billing_application = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* advertisedOnlineBillingApplication
    advertised_online_billing_application = Field(
        type=str,
        required=False,
    )


class SystemBwDiameterPeerAddRequest(OCIRequest):
    """
    Add a static entry in the Diameter Peer Table.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "identity",
            "identity",
            str,
            False,
            True,
            False,
        ),
        E(
            "ip_address",
            "ipAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "enabled",
            "enabled",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* identity
    identity = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* ipAddress
    ip_address = Field(
        type=str,
        required=False,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enabled
    enabled = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "identity",
            "identity",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* identity
    identity = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "identity",
            "identity",
            str,
            False,
            True,
            False,
        ),
        E(
            "ip_address",
            "ipAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "enabled",
            "enabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* identity
    identity = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* ipAddress
    ip_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enabled
    enabled = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "realm",
            "realm",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "identity",
            "identity",
            str,
            False,
            True,
            False,
        ),
        E(
            "priority",
            "priority",
            int,
            False,
            True,
            False,
        ),
        E(
            "weight",
            "weight",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* realm
    realm = Field(
        type=str,
        required=True,
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* identity
    identity = Field(
        type=str,
        required=True,
    )
    #: int: *Required* priority
    priority = Field(
        type=int,
        required=True,
    )
    #: int: *Required* weight
    weight = Field(
        type=int,
        required=True,
    )


class SystemBwDiameterRoutingPeerDeleteRequest(OCIRequest):
    """
    Remove a Diameter routing peer.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "realm",
            "realm",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "identity",
            "identity",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* realm
    realm = Field(
        type=str,
        required=True,
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* identity
    identity = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "realm",
            "realm",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "identity",
            "identity",
            str,
            False,
            True,
            False,
        ),
        E(
            "priority",
            "priority",
            int,
            False,
            False,
            False,
        ),
        E(
            "weight",
            "weight",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* realm
    realm = Field(
        type=str,
        required=True,
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* identity
    identity = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* priority
    priority = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* weight
    weight = Field(
        type=int,
        required=False,
    )


class SystemBwDiameterRoutingRealmAddRequest(OCIRequest):
    """
    Add a static entry in the Realm Routing Table.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "realm",
            "realm",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "default",
            "default",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* realm
    realm = Field(
        type=str,
        required=True,
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* default
    default = Field(
        type=bool,
        required=True,
    )


class SystemBwDiameterRoutingRealmDeleteRequest(OCIRequest):
    """
    Delete a static entry in the Realm Routing Table.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "realm",
            "realm",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* realm
    realm = Field(
        type=str,
        required=True,
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "instance",
            "instance",
            str,
            False,
            True,
            False,
        ),
        E(
            "realm",
            "realm",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "default",
            "default",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* instance
    instance = Field(
        type=str,
        required=True,
    )
    #: str: *Required* realm
    realm = Field(
        type=str,
        required=True,
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* default
    default = Field(
        type=bool,
        required=False,
    )


class SystemCAPAddACLEntryRequest14(OCIRequest):
    """
    Add an entry to the CAP access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemCAPDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the CAP access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_client_connections",
            "maxClientConnections",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_connection_ping",
            "enableConnectionPing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "connection_ping_interval_minutes",
            "connectionPingIntervalMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "ccc2_server_port",
            "CCC2ServerPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "ccc2_max_client_connections",
            "CCC2MaxClientConnections",
            int,
            False,
            False,
            False,
        ),
        E(
            "cap_server_call_center_port",
            "capServerCallCenterPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "cap_server_call_center_max_client_connections",
            "capServerCallCenterMaxClientConnections",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxClientConnections
    max_client_connections = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableConnectionPing
    enable_connection_ping = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* connectionPingIntervalMinutes
    connection_ping_interval_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* CCC2ServerPort
    ccc2_server_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* CCC2MaxClientConnections
    ccc2_max_client_connections = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capServerCallCenterPort
    cap_server_call_center_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capServerCallCenterMaxClientConnections
    cap_server_call_center_max_client_connections = Field(
        type=int,
        required=False,
    )


class SystemCAPParametersModifyRequest19(OCIRequest):
    """
    Request to modify CAP system parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_client_connections",
            "maxClientConnections",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_connection_ping",
            "enableConnectionPing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "connection_ping_interval_minutes",
            "connectionPingIntervalMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "ccc2_server_port",
            "CCC2ServerPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "ccc2_max_client_connections",
            "CCC2MaxClientConnections",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxClientConnections
    max_client_connections = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableConnectionPing
    enable_connection_ping = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* connectionPingIntervalMinutes
    connection_ping_interval_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* CCC2ServerPort
    ccc2_server_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* CCC2MaxClientConnections
    ccc2_max_client_connections = Field(
        type=int,
        required=False,
    )


class SystemCPEConfigAddFileServerRequest(OCIRequest):
    """
    Add a device CPE config file server.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemCPEConfigAddFileServerRequest14sp6()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "ftp_host_net_address",
            "ftpHostNetAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "ftp_user_id",
            "ftpUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "ftp_user_password",
            "ftpUserPassword",
            str,
            False,
            True,
            False,
        ),
        E(
            "cpe_file_directory",
            "cpeFileDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "passive_ftp",
            "passiveFTP",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* ftpHostNetAddress
    ftp_host_net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Required* ftpUserId
    ftp_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* ftpUserPassword
    ftp_user_password = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* cpeFileDirectory
    cpe_file_directory = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* passiveFTP
    passive_ftp = Field(
        type=bool,
        required=False,
    )


class SystemCPEConfigAddFileServerRequest14sp6(OCIRequest):
    """
    Add a device CPE config file server.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "cpe_file_directory",
            "cpeFileDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "extended_capture_file_repository_name",
            "extendedCaptureFileRepositoryName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* cpeFileDirectory
    cpe_file_directory = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extendedCaptureFileRepositoryName
    extended_capture_file_repository_name = Field(
        type=str,
        required=False,
    )


class SystemCPEConfigDeleteFileServerRequest(OCIRequest):
    """
    Delete a device CPE config file server.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "ftp_host_net_address",
            "ftpHostNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ftp_user_id",
            "ftpUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "ftp_user_password",
            "ftpUserPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "cpe_file_directory",
            "cpeFileDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "passive_ftp",
            "passiveFTP",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* ftpHostNetAddress
    ftp_host_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* ftpUserId
    ftp_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* ftpUserPassword
    ftp_user_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* cpeFileDirectory
    cpe_file_directory = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* passiveFTP
    passive_ftp = Field(
        type=bool,
        required=False,
    )


class SystemCPEConfigModifyFileServerRequest14sp6(OCIRequest):
    """
    Modify a device CPE config file server.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            False,
            False,
        ),
        E(
            "cpe_file_directory",
            "cpeFileDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "extended_capture_file_repository_name",
            "extendedCaptureFileRepositoryName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* cpeFileDirectory
    cpe_file_directory = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extendedCaptureFileRepositoryName
    extended_capture_file_repository_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enable_ip_device_management",
            "enableIPDeviceManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ftp_connect_timeout_seconds",
            "ftpConnectTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "ftp_file_transfer_timeout_seconds",
            "ftpFileTransferTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "pause_between_file_rebuild_milliseconds",
            "pauseBetweenFileRebuildMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_busy_time_minutes",
            "maxBusyTimeMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "device_access_app_server_cluster_name",
            "deviceAccessAppServerClusterName",
            str,
            False,
            False,
            False,
        ),
        E(
            "file_rebuild_immediate",
            "fileRebuildImmediate",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "file_rebuild_daily",
            "fileRebuildDaily",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "file_rebuild_hourly",
            "fileRebuildHourly",
            str,
            True,
            True,
            False,
        ),  # unknown
    )
    #: bool: *Optional* enableIPDeviceManagement
    enable_ip_device_management = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ftpConnectTimeoutSeconds
    ftp_connect_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* ftpFileTransferTimeoutSeconds
    ftp_file_transfer_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* pauseBetweenFileRebuildMilliseconds
    pause_between_file_rebuild_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxBusyTimeMinutes
    max_busy_time_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* deviceAccessAppServerClusterName
    device_access_app_server_cluster_name = Field(
        type=str,
        required=False,
    )
    #: str: *Required* fileRebuildImmediate
    file_rebuild_immediate = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRebuildDaily
    file_rebuild_daily = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileRebuildHourly
    file_rebuild_hourly = Field(
        type=str,
        required=True,
    )


class SystemCPEConfigParametersModifyRequest20(OCIRequest):
    """
    Request to modify CPE Config system parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "enable_ip_device_management",
            "enableIPDeviceManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ftp_connect_timeout_seconds",
            "ftpConnectTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "ftp_file_transfer_timeout_seconds",
            "ftpFileTransferTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "pause_between_file_rebuild_milliseconds",
            "pauseBetweenFileRebuildMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_busy_time_minutes",
            "maxBusyTimeMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "device_access_app_server_cluster_name",
            "deviceAccessAppServerClusterName",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableIPDeviceManagement
    enable_ip_device_management = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ftpConnectTimeoutSeconds
    ftp_connect_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* ftpFileTransferTimeoutSeconds
    ftp_file_transfer_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* pauseBetweenFileRebuildMilliseconds
    pause_between_file_rebuild_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxBusyTimeMinutes
    max_busy_time_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* deviceAccessAppServerClusterName
    device_access_app_server_cluster_name = Field(
        type=str,
        required=False,
    )


class SystemCPEConfigParametersModifyRequest21(OCIRequest):
    """
    Request to modify CPE Config system parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "enable_ip_device_management",
            "enableIPDeviceManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ftp_connect_timeout_seconds",
            "ftpConnectTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "ftp_file_transfer_timeout_seconds",
            "ftpFileTransferTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "pause_between_file_rebuild_milliseconds",
            "pauseBetweenFileRebuildMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "device_access_app_server_cluster_name",
            "deviceAccessAppServerClusterName",
            str,
            False,
            False,
            False,
        ),
        E(
            "min_time_between_reset_milliseconds",
            "minTimeBetweenResetMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "always_push_files_on_rebuild",
            "alwaysPushFilesOnRebuild",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_file_operation_retry_attempts",
            "maxFileOperationRetryAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_auto_rebuild_config",
            "enableAutoRebuildConfig",
            bool,
            False,
            False,
            False,
        ),
        E(
            "event_queue_size",
            "eventQueueSize",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_device_credentials_retrieval",
            "allowDeviceCredentialsRetrieval",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableIPDeviceManagement
    enable_ip_device_management = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ftpConnectTimeoutSeconds
    ftp_connect_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* ftpFileTransferTimeoutSeconds
    ftp_file_transfer_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* pauseBetweenFileRebuildMilliseconds
    pause_between_file_rebuild_milliseconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* deviceAccessAppServerClusterName
    device_access_app_server_cluster_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* minTimeBetweenResetMilliseconds
    min_time_between_reset_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* alwaysPushFilesOnRebuild
    always_push_files_on_rebuild = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFileOperationRetryAttempts
    max_file_operation_retry_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutoRebuildConfig
    enable_auto_rebuild_config = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* eventQueueSize
    event_queue_size = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowDeviceCredentialsRetrieval
    allow_device_credentials_retrieval = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            False,
            False,
        ),
        E(
            "rebuild_type",
            "rebuildType",
            str,
            False,
            False,
            False,
        ),
        E(
            "force",
            "force",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* deviceType
    device_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* rebuildType
    rebuild_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* force
    force = Field(
        type=bool,
        required=False,
    )


class SystemCPEConfigRebuildDeviceConfigFileRequest(OCIRequest):
    """
    Rebuild the config file for a specified device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "force",
            "force",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* force
    force = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "ordered_line_port_list",
            "orderedLinePortList",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* orderedLinePortList
    ordered_line_port_list = Field(
        type=str,
        required=True,
    )


class SystemCPEConfigResetDeviceRequest(OCIRequest):
    """
    Reset a specific system device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* deviceType
    device_type = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "config_file",
            "configFile",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* configFile
    config_file = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "archive_reports",
            "archiveReports",
            bool,
            False,
            False,
            False,
        ),
        E(
            "report_application_url",
            "reportApplicationURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "repository_application_url",
            "repositoryApplicationURL",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* archiveReports
    archive_reports = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* reportApplicationURL
    report_application_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* repositoryApplicationURL
    repository_application_url = Field(
        type=str,
        required=False,
    )


class SystemCallCenterEnhancedReportingReportTemplateDeleteRequest(OCIRequest):
    """
    Request to delete a system level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "scheduled_report_search_interval_minutes",
            "scheduledReportSearchIntervalMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "maximum_scheduled_reports_per_interval",
            "maximumScheduledReportsPerInterval",
            int,
            False,
            False,
            False,
        ),
        E(
            "delete_scheduled_report_days_after_completion",
            "deleteScheduledReportDaysAfterCompletion",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* scheduledReportSearchIntervalMinutes
    scheduled_report_search_interval_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maximumScheduledReportsPerInterval
    maximum_scheduled_reports_per_interval = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* deleteScheduledReportDaysAfterCompletion
    delete_scheduled_report_days_after_completion = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "default_from_address",
            "defaultFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "statistics_sampling_period_minutes",
            "statisticsSamplingPeriodMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "default_enable_guard_timer",
            "defaultEnableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_guard_timer_seconds",
            "defaultGuardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_play_ring_when_offer_call",
            "defaultPlayRingWhenOfferCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "uniform_call_distribution_policy_scope",
            "uniformCallDistributionPolicyScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_handling_sampling_period_minutes",
            "callHandlingSamplingPeriodMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_handling_minimum_sampling_size",
            "callHandlingMinimumSamplingSize",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_tone_to_agent_for_emergency_call",
            "playToneToAgentForEmergencyCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "emergency_call_clid_prefix",
            "emergencyCallCLIDPrefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "threshold_crossing_notification_email_guard_timer_seconds",
            "thresholdCrossingNotificationEmailGuardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_device_initiated_forward",
            "allowAgentDeviceInitiatedForward",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* defaultFromAddress
    default_from_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* statisticsSamplingPeriodMinutes
    statistics_sampling_period_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* defaultEnableGuardTimer
    default_enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* defaultGuardTimerSeconds
    default_guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnDNDActivation
    force_agent_unavailable_on_dnd_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnPersonalCalls
    force_agent_unavailable_on_personal_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnBouncedCallLimit
    force_agent_unavailable_on_bounced_call_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberConsecutiveBouncedCallsToForceAgentUnavailable
    number_consecutive_bounced_calls_to_force_agent_unavailable = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnNotReachable
    force_agent_unavailable_on_not_reachable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* defaultPlayRingWhenOfferCall
    default_play_ring_when_offer_call = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* uniformCallDistributionPolicyScope
    uniform_call_distribution_policy_scope = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* callHandlingSamplingPeriodMinutes
    call_handling_sampling_period_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* callHandlingMinimumSamplingSize
    call_handling_minimum_sampling_size = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playToneToAgentForEmergencyCall
    play_tone_to_agent_for_emergency_call = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* emergencyCallCLIDPrefix
    emergency_call_clid_prefix = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* thresholdCrossingNotificationEmailGuardTimerSeconds
    threshold_crossing_notification_email_guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowAgentDeviceInitiatedForward
    allow_agent_device_initiated_forward = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "passcode_length",
            "passcodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "passcode_timeout_seconds",
            "passcodeTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* passcodeLength
    passcode_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* passcodeTimeoutSeconds
    passcode_timeout_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "default_from_address",
            "defaultFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_short_subject_line",
            "useShortSubjectLine",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_dn_in_mail_body",
            "useDnInMailBody",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* defaultFromAddress
    default_from_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useShortSubjectLine
    use_short_subject_line = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useDnInMailBody
    use_dn_in_mail_body = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "conference_uri",
            "conferenceURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_conference_parties",
            "maxConferenceParties",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
    override_clid_restriction_for_external_calls_via_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* conferenceURI
    conference_uri = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxConferenceParties
    max_conference_parties = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=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
    """

    _ELEMENTS = (
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "conference_uri",
            "conferenceURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_conference_parties",
            "maxConferenceParties",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* conferenceURI
    conference_uri = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxConferenceParties
    max_conference_parties = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )


class SystemCallProcessingPolicyProfileAddRequest(OCIRequest):
    """
    Add a call processing policy profile to system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced by ``SystemCallProcessingPolicyProfileAddRequest20()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "assigned_subscriber_type",
            "assignedSubscriberType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* assignedSubscriberType
    assigned_subscriber_type = Field(
        type=str,
        required=False,
    )


class SystemCallProcessingPolicyProfileAddRequest20(OCIRequest):
    """
    Add a call processing policy profile to system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "assigned_subscriber_type",
            "assignedSubscriberType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* assignedSubscriberType
    assigned_subscriber_type = Field(
        type=str,
        required=False,
    )


class SystemCallProcessingPolicyProfileAddRequest21(OCIRequest):
    """
    Add a call processing policy profile to system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "assigned_subscriber_type",
            "assignedSubscriberType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* assignedSubscriberType
    assigned_subscriber_type = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileAutoAttendantProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileBroadWorksAnywhereProfileModifyRequest(
    OCIRequest,
):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileCallCenterProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=False,
    )


class SystemCallProcessingPolicyProfileDeleteRequest(OCIRequest):
    """
    Delete a call processing policy profile from system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileFindMeFollowMeProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileFlexibleSeatingHostProfileModifyRequest(
    OCIRequest,
):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileGetRequest20(OCIRequest):
    """
    Request to get a call processing policy profile in system.
    The response is either a ``SystemCallProcessingPolicyProfileGetResponse20()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileGetRequest21(OCIRequest):
    """
    Request to get a call processing policy profile in system.
    The response is either a ``SystemCallProcessingPolicyProfileGetResponse21()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileGroupPagingProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileHuntGroupProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileInstantGroupCallProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileMeetMeConferencingProfileModifyRequest(
    OCIRequest,
):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileRoutePointProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileTrunkGroupPilotProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_media_policy",
            "useMediaPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useMediaPolicy
    use_media_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileUserProfileModifyRequest(OCIRequest):
    """
    Modify a call processing policy profile user subscriber type profile in system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_media_policy",
            "useMediaPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useMediaPolicy
    use_media_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileVoicePortalProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )


class SystemCallProcessingPolicyProfileVoiceXMLProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_clid_policy",
            "useCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enterprise_calls_clid_policy",
            "enterpriseCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_group_calls_clid_policy",
            "enterpriseGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_call_limits_policy",
            "useCallLimitsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_translation_routing_policy",
            "useTranslationRoutingPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_usage_selection",
            "networkUsageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_extension_dialing",
            "enableEnterpriseExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_incoming_clid_policy",
            "useIncomingCLIDPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCLIDPolicy
    use_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* enterpriseCallsCLIDPolicy
    enterprise_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseGroupCallsCLIDPolicy
    enterprise_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderGroupCallsCLIDPolicy
    service_provider_group_calls_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCallLimitsPolicy
    use_call_limits_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useTranslationRoutingPolicy
    use_translation_routing_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkUsageSelection
    network_usage_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseExtensionDialing
    enable_enterprise_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceGroupCallingLineIdentityRestriction
    enforce_group_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceEnterpriseCallingLineIdentityRestriction
    enforce_enterprise_calling_line_identity_restriction = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPrivateDialingPlan
    allow_enterprise_group_call_typing_for_private_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowEnterpriseGroupCallTypingForPublicDialingPlan
    allow_enterprise_group_call_typing_for_public_dialing_plan = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideCLIDRestrictionForPrivateCallCategory
    override_clid_restriction_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useEnterpriseCLIDForPrivateCallCategory
    use_enterprise_clid_for_private_call_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useIncomingCLIDPolicy
    use_incoming_clid_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=False,
    )


class SystemCallRecordingAddPlatformRequest(OCIRequest):
    """
    Add a Call Recording platform.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "media_stream",
            "mediaStream",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_type",
            "transportType",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: str: *Required* mediaStream
    media_stream = Field(
        type=str,
        required=True,
    )
    #: str: *Required* transportType
    transport_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemCallRecordingAddPlatformRequest19(OCIRequest):
    """
    Add a Call Recording platform.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "media_stream",
            "mediaStream",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_type",
            "transportType",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "schema_version",
            "schemaVersion",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: str: *Required* mediaStream
    media_stream = Field(
        type=str,
        required=True,
    )
    #: str: *Required* transportType
    transport_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* schemaVersion
    schema_version = Field(
        type=str,
        required=True,
    )


class SystemCallRecordingAddPlatformRequest20(OCIRequest):
    """
    Add a Call Recording platform.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "media_stream",
            "mediaStream",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_type",
            "transportType",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "schema_version",
            "schemaVersion",
            str,
            False,
            True,
            False,
        ),
        E(
            "support_video_recording",
            "supportVideoRecording",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: str: *Required* mediaStream
    media_stream = Field(
        type=str,
        required=True,
    )
    #: str: *Required* transportType
    transport_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* schemaVersion
    schema_version = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* supportVideoRecording
    support_video_recording = Field(
        type=bool,
        required=True,
    )


class SystemCallRecordingDeletePlatformRequest(OCIRequest):
    """
    Delete a Call Recording platform.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_stream",
            "mediaStream",
            str,
            False,
            False,
            False,
        ),
        E(
            "become_system_default",
            "becomeSystemDefault",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transport_type",
            "transportType",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "schema_version",
            "schemaVersion",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_video_recording",
            "supportVideoRecording",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaStream
    media_stream = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* becomeSystemDefault
    become_system_default = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transportType
    transport_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* schemaVersion
    schema_version = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* supportVideoRecording
    support_video_recording = Field(
        type=bool,
        required=False,
    )


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

    _ELEMENTS = (
        E(
            "continue_call_after_recording_failure",
            "continueCallAfterRecordingFailure",
            bool,
            False,
            False,
            False,
        ),
        E(
            "refresh_period_seconds",
            "refreshPeriodSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_consecutive_failures",
            "maxConsecutiveFailures",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_response_wait_time_milliseconds",
            "maxResponseWaitTimeMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "continue_call_after_video_recording_failure",
            "continueCallAfterVideoRecordingFailure",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* continueCallAfterRecordingFailure
    continue_call_after_recording_failure = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* refreshPeriodSeconds
    refresh_period_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxConsecutiveFailures
    max_consecutive_failures = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxResponseWaitTimeMilliseconds
    max_response_wait_time_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* continueCallAfterVideoRecordingFailure
    continue_call_after_video_recording_failure = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "two_level_activation",
            "twoLevelActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "provide_date",
            "provideDate",
            bool,
            False,
            False,
            False,
        ),
        E(
            "last_unanswered_call_only",
            "lastUnansweredCallOnly",
            bool,
            False,
            False,
            False,
        ),
        E(
            "confirmation_key",
            "confirmationKey",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_restricted_number",
            "allowRestrictedNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delete_number_after_answered_call_return",
            "deleteNumberAfterAnsweredCallReturn",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* twoLevelActivation
    two_level_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* provideDate
    provide_date = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* lastUnansweredCallOnly
    last_unanswered_call_only = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* confirmationKey
    confirmation_key = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowRestrictedNumber
    allow_restricted_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* deleteNumberAfterAnsweredCallReturn
    delete_number_after_answered_call_return = Field(
        type=bool,
        required=False,
    )


class SystemCallTypeAddMappingRequest(OCIRequest):
    """
    Add a system call type mapping.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_map",
            "digitMap",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_type",
            "callType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitMap
    digit_map = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callType
    call_type = Field(
        type=str,
        required=True,
    )


class SystemCallTypeDeleteMappingRequest(OCIRequest):
    """
    Delete a system call type mapping.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_map",
            "digitMap",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitMap
    digit_map = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* countryCode
    country_code = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "play_distinctive_ringback",
            "playDistinctiveRingback",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* playDistinctiveRingback
    play_distinctive_ringback = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "query_timer_milli_seconds",
            "queryTimerMilliSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "server_net_address",
            "serverNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "server_transport_protocol",
            "serverTransportProtocol",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* queryTimerMilliSeconds
    query_timer_milli_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* serverNetAddress
    server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* serverTransportProtocol
    server_transport_protocol = Field(
        type=str,
        required=False,
    )


class SystemCallingNameRetrievalModifyRequest16sp1(OCIRequest):
    """
    Modifies the system's calling name retrieval attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trigger_cnam_queries_for_all_network_calls",
            "triggerCNAMQueriesForAllNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trigger_cnam_queries_for_group_and_enterprise_calls",
            "triggerCNAMQueriesForGroupAndEnterpriseCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "query_protocol",
            "queryProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "query_timeout_milliseconds",
            "queryTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "sip_external_database_net_address",
            "sipExternalDatabaseNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_external_database_port",
            "sipExternalDatabasePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "sip_external_database_transport",
            "sipExternalDatabaseTransport",
            str,
            False,
            False,
            False,
        ),
        E(
            "soap_external_database_net_address",
            "soapExternalDatabaseNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "soap_supports_dnssrv",
            "soapSupportsDNSSRV",
            bool,
            False,
            False,
            False,
        ),
        E(
            "calling_name_source",
            "callingNameSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* triggerCNAMQueriesForAllNetworkCalls
    trigger_cnam_queries_for_all_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* triggerCNAMQueriesForGroupAndEnterpriseCalls
    trigger_cnam_queries_for_group_and_enterprise_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* queryProtocol
    query_protocol = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* queryTimeoutMilliseconds
    query_timeout_milliseconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* sipExternalDatabaseNetAddress
    sip_external_database_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* sipExternalDatabasePort
    sip_external_database_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* sipExternalDatabaseTransport
    sip_external_database_transport = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* soapExternalDatabaseNetAddress
    soap_external_database_net_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* soapSupportsDNSSRV
    soap_supports_dnssrv = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callingNameSource
    calling_name_source = Field(
        type=str,
        required=False,
    )


class SystemCallingNameRetrievalModifyRequest20(OCIRequest):
    """
    Modifies the system's calling name retrieval attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trigger_cnam_queries_for_all_network_calls",
            "triggerCNAMQueriesForAllNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trigger_cnam_queries_for_group_and_enterprise_calls",
            "triggerCNAMQueriesForGroupAndEnterpriseCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "query_protocol",
            "queryProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "query_timeout_milliseconds",
            "queryTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "sip_external_database_net_address",
            "sipExternalDatabaseNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_external_database_port",
            "sipExternalDatabasePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "sip_external_database_transport",
            "sipExternalDatabaseTransport",
            str,
            False,
            False,
            False,
        ),
        E(
            "soap_external_database_net_address",
            "soapExternalDatabaseNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_name_source",
            "callingNameSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_advance_timer",
            "routeAdvanceTimer",
            int,
            False,
            False,
            False,
        ),
        E(
            "retry_failed_cnam_server_interval",
            "retryFailedCNAMServerInterval",
            int,
            False,
            False,
            False,
        ),
        E(
            "ignore_restricted_presentation_indicator",
            "ignoreRestrictedPresentationIndicator",
            bool,
            False,
            False,
            False,
        ),
        E(
            "supports_dnssrv",
            "supportsDNSSRV",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* triggerCNAMQueriesForAllNetworkCalls
    trigger_cnam_queries_for_all_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* triggerCNAMQueriesForGroupAndEnterpriseCalls
    trigger_cnam_queries_for_group_and_enterprise_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* queryProtocol
    query_protocol = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* queryTimeoutMilliseconds
    query_timeout_milliseconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* sipExternalDatabaseNetAddress
    sip_external_database_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* sipExternalDatabasePort
    sip_external_database_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* sipExternalDatabaseTransport
    sip_external_database_transport = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* soapExternalDatabaseNetAddress
    soap_external_database_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingNameSource
    calling_name_source = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* routeAdvanceTimer
    route_advance_timer = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* retryFailedCNAMServerInterval
    retry_failed_cnam_server_interval = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* ignoreRestrictedPresentationIndicator
    ignore_restricted_presentation_indicator = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportsDNSSRV
    supports_dnssrv = Field(
        type=bool,
        required=False,
    )


class SystemCallingPartyCategoryAddRequest(OCIRequest):
    """
    Add a Calling Party Category to system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "category",
            "category",
            str,
            False,
            True,
            False,
        ),
        E(
            "cpc_value",
            "cpcValue",
            str,
            False,
            False,
            False,
        ),
        E(
            "isup_oli_value",
            "isupOliValue",
            int,
            False,
            False,
            False,
        ),
        E(
            "gtd_oli_value",
            "gtdOliValue",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_category",
            "userCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pay_phone",
            "payPhone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "operator",
            "operator",
            bool,
            False,
            True,
            False,
        ),
        E(
            "default",
            "default",
            bool,
            False,
            True,
            False,
        ),
        E(
            "collect_call",
            "collectCall",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_display_key",
            "webDisplayKey",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* category
    category = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* cpcValue
    cpc_value = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* isupOliValue
    isup_oli_value = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* gtdOliValue
    gtd_oli_value = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* userCategory
    user_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* payPhone
    pay_phone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* operator
    operator = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* default
    default = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* collectCall
    collect_call = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webDisplayKey
    web_display_key = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "category",
            "category",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* category
    category = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "category",
            "category",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* category
    category = Field(
        type=str,
        required=True,
    )


class SystemCallingPartyCategoryModifyRequest(OCIRequest):
    """
    Modify a Calling Party Category in system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "category",
            "category",
            str,
            False,
            True,
            False,
        ),
        E(
            "cpc_value",
            "cpcValue",
            str,
            False,
            False,
            False,
        ),
        E(
            "isup_oli_value",
            "isupOliValue",
            int,
            False,
            False,
            False,
        ),
        E(
            "gtd_oli_value",
            "gtdOliValue",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_category",
            "userCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pay_phone",
            "payPhone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "operator",
            "operator",
            bool,
            False,
            False,
            False,
        ),
        E(
            "become_default",
            "becomeDefault",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collect_call",
            "collectCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_display_key",
            "webDisplayKey",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* category
    category = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* cpcValue
    cpc_value = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* isupOliValue
    isup_oli_value = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* gtdOliValue
    gtd_oli_value = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* userCategory
    user_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* payPhone
    pay_phone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* operator
    operator = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* becomeDefault
    become_default = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* collectCall
    collect_call = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webDisplayKey
    web_display_key = Field(
        type=str,
        required=False,
    )


class SystemClassmarkAddRequest(OCIRequest):
    """
    Add a Class Mark to system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "classmark",
            "classmark",
            str,
            False,
            True,
            False,
        ),
        E(
            "value",
            "value",
            str,
            False,
            True,
            False,
        ),
        E(
            "web_display_key",
            "webDisplayKey",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* classmark
    classmark = Field(
        type=str,
        required=True,
    )
    #: str: *Required* value
    value = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* webDisplayKey
    web_display_key = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "classmark",
            "classmark",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* classmark
    classmark = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "classmark",
            "classmark",
            str,
            False,
            True,
            False,
        ),
        E(
            "value",
            "value",
            str,
            False,
            False,
            False,
        ),
        E(
            "web_display_key",
            "webDisplayKey",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* classmark
    classmark = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* value
    value = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* webDisplayKey
    web_display_key = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enable_inactivity_timeout",
            "enableInactivityTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "inactivity_timeout_minutes",
            "inactivityTimeoutMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableInactivityTimeout
    enable_inactivity_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* inactivityTimeoutMinutes
    inactivity_timeout_minutes = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "codec",
            "codec",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* codec
    codec = Field(
        type=str,
        required=True,
    )


class SystemCodecDeleteRequest(OCIRequest):
    """
    Request to delete a supported codec from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "codec",
            "codec",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* codec
    codec = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "alternate_call_indicator",
            "alternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_server_alternate_call_indicator",
            "networkServerAlternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* alternateCallIndicator
    alternate_call_indicator = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkServerAlternateCallIndicator
    network_server_alternate_call_indicator = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringAlternateCallIndicatorDeleteRequest(OCIRequest):
    """
    Delete a Communication Barring Alternate Call Indicator.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "alternate_call_indicator",
            "alternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* alternateCallIndicator
    alternate_call_indicator = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "alternate_call_indicator",
            "alternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_server_alternate_call_indicator",
            "networkServerAlternateCallIndicator",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* alternateCallIndicator
    alternate_call_indicator = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkServerAlternateCallIndicator
    network_server_alternate_call_indicator = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringCallTypeAddRequest(OCIRequest):
    """
    Add a Communication Barring Call Type.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "call_type",
            "callType",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_server_call_type",
            "networkServerCallType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callType
    call_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkServerCallType
    network_server_call_type = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringCallTypeDeleteRequest(OCIRequest):
    """
    Delete a Communication Barring Call Type.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "call_type",
            "callType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callType
    call_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "call_type",
            "callType",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_server_call_type",
            "networkServerCallType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callType
    call_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkServerCallType
    network_server_call_type = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``SystemCommunicationBarringCriteriaAddRequest17()``
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_virtual_on_net_call_type",
            "matchVirtualOnNetCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_public_network",
            "matchPublicNetwork",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_network",
            "matchPrivateNetwork",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_inter_network",
            "matchInterNetwork",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_inter_hosting_ne",
            "matchInterHostingNE",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_inter_as",
            "matchInterAS",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intra_as",
            "matchIntraAS",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_charge_calls",
            "matchChargeCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_no_charge_calls",
            "matchNoChargeCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_group_calls",
            "matchGroupCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_enterprise_calls",
            "matchEnterpriseCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_network_calls",
            "matchNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_network_url_calls",
            "matchNetworkURLCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_repair_calls",
            "matchRepairCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_calls",
            "matchEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_internal_calls",
            "matchInternalCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchCallType
    match_call_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchVirtualOnNetCallType
    match_virtual_on_net_call_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* matchPublicNetwork
    match_public_network = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateNetwork
    match_private_network = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterNetwork
    match_inter_network = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterHostingNE
    match_inter_hosting_ne = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterAS
    match_inter_as = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntraAS
    match_intra_as = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchChargeCalls
    match_charge_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNoChargeCalls
    match_no_charge_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchGroupCalls
    match_group_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEnterpriseCalls
    match_enterprise_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNetworkCalls
    match_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNetworkURLCalls
    match_network_url_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchRepairCalls
    match_repair_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCalls
    match_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternalCalls
    match_internal_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* timeSchedule
    time_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringCriteriaAddRequest17(OCIRequest):
    """
    Add a new Communication Barring Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_virtual_on_net_call_type",
            "matchVirtualOnNetCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_public_network",
            "matchPublicNetwork",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_network",
            "matchPrivateNetwork",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_inter_network",
            "matchInterNetwork",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_inter_hosting_ne",
            "matchInterHostingNE",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_inter_as",
            "matchInterAS",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intra_as",
            "matchIntraAS",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_charge_calls",
            "matchChargeCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_no_charge_calls",
            "matchNoChargeCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_group_calls",
            "matchGroupCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_enterprise_calls",
            "matchEnterpriseCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_network_calls",
            "matchNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_network_url_calls",
            "matchNetworkURLCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_repair_calls",
            "matchRepairCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_calls",
            "matchEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_internal_calls",
            "matchInternalCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_location",
            "matchLocation",
            str,
            False,
            True,
            False,
        ),
        E(
            "match_roaming",
            "matchRoaming",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_number_portability_status",
            "matchNumberPortabilityStatus",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchCallType
    match_call_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchVirtualOnNetCallType
    match_virtual_on_net_call_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* matchPublicNetwork
    match_public_network = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateNetwork
    match_private_network = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterNetwork
    match_inter_network = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterHostingNE
    match_inter_hosting_ne = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterAS
    match_inter_as = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntraAS
    match_intra_as = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchChargeCalls
    match_charge_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNoChargeCalls
    match_no_charge_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchGroupCalls
    match_group_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEnterpriseCalls
    match_enterprise_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNetworkCalls
    match_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNetworkURLCalls
    match_network_url_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchRepairCalls
    match_repair_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCalls
    match_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternalCalls
    match_internal_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* matchLocation
    match_location = Field(
        type=str,
        required=True,
    )
    #: str: *Required* matchRoaming
    match_roaming = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* timeSchedule
    time_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchNumberPortabilityStatus
    match_number_portability_status = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringCriteriaGetRequest17(OCIRequest):
    """
    Get an existing Communication Barring Criteria.
    The response is either a
    ``SystemCommunicationBarringCriteriaGetResponse17()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringCriteriaGetRequest19sp1(OCIRequest):
    """
    Get an existing Communication Barring Criteria.
    The response is either a
    ``SystemCommunicationBarringCriteriaGetResponse19sp1()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringDigitPatternCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Digit Pattern Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_digit_pattern",
            "matchDigitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchDigitPattern
    match_digit_pattern = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringDigitPatternCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Digit Pattern Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringDigitPatternCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Digit Pattern Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "add_match_digit_pattern",
            "addMatchDigitPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "delete_match_digit_pattern",
            "deleteMatchDigitPattern",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addMatchDigitPattern
    add_match_digit_pattern = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deleteMatchDigitPattern
    delete_match_digit_pattern = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_number_portability_status",
            "matchNumberPortabilityStatus",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeSchedule
    time_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchNumberPortabilityStatus
    match_number_portability_status = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringIncomingCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Incoming Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Communication Barring.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "direct_transfer_screening",
            "directTransferScreening",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* directTransferScreening
    direct_transfer_screening = Field(
        type=bool,
        required=False,
    )


class SystemCommunicationBarringProfileDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Profile.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringProfileGetDigitPatternCriteriaUsageListRequest(
    OCIRequest,
):
    """
    Get the list of Profiles that use a specific Digit Pattern Criteria.
    The response is either a
    ``SystemCommunicationBarringProfileGetDigitPatternCriteriaUsageListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringProfileGetRequest16(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``SystemCommunicationBarringProfileGetResponse16()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringProfileGetRequest17sp1(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``SystemCommunicationBarringProfileGetResponse17sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringProfileGetRequest17sp3(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``SystemCommunicationBarringProfileGetResponse17sp3()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemCommunicationBarringProfileGetRequest19sp1(OCIRequest):
    """
    Get an existing Communication Barring Profile.
    The response is either a ``SystemCommunicationBarringProfileGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "enable_lockout",
            "enableLockout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_number_of_failed_attempts",
            "maxNumberOfFailedAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "lockout_minutes",
            "lockoutMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableLockout
    enable_lockout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxNumberOfFailedAttempts
    max_number_of_failed_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* lockoutMinutes
    lockout_minutes = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "media_directory",
            "mediaDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "protocol_file",
            "protocolFile",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "protocol_web_dav",
            "protocolWebDAV",
            str,
            True,
            True,
            False,
        ),  # unknown
    )
    #: str: *Optional* mediaDirectory
    media_directory = Field(
        type=str,
        required=False,
    )
    #: str: *Required* protocolFile
    protocol_file = Field(
        type=str,
        required=True,
    )
    #: str: *Required* protocolWebDAV
    protocol_web_dav = Field(
        type=str,
        required=True,
    )


class SystemConfigurableTreatmentAddRequest(OCIRequest):
    """
    Add a configurable treatment.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
        E(
            "charge_indicator",
            "chargeIndicator",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_sip_status_code",
            "accessSIPStatusCode",
            int,
            False,
            False,
            False,
        ),
        E(
            "access_sip_status_message",
            "accessSIPStatusMessage",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_sip_status_code",
            "networkSIPStatusCode",
            int,
            False,
            False,
            False,
        ),
        E(
            "network_sip_status_message",
            "networkSIPStatusMessage",
            str,
            False,
            False,
            False,
        ),
        E(
            "q850_cause_value",
            "q850CauseValue",
            int,
            False,
            False,
            False,
        ),
        E(
            "q850_text",
            "q850Text",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_treatment_audio_file",
            "accessTreatmentAudioFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_treatment_video_file",
            "accessTreatmentVideoFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_treatment_audio_file",
            "networkTreatmentAudioFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_treatment_video_file",
            "networkTreatmentVideoFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "cdr_termination_cause",
            "cdrTerminationCause",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_release_cause",
            "internalReleaseCause",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_send_reason_header",
            "accessSendReasonHeader",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_send_reason_header",
            "networkSendReasonHeader",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* chargeIndicator
    charge_indicator = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* accessSIPStatusCode
    access_sip_status_code = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* accessSIPStatusMessage
    access_sip_status_message = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* networkSIPStatusCode
    network_sip_status_code = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* networkSIPStatusMessage
    network_sip_status_message = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* q850CauseValue
    q850_cause_value = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* q850Text
    q850_text = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessTreatmentAudioFile
    access_treatment_audio_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessTreatmentVideoFile
    access_treatment_video_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkTreatmentAudioFile
    network_treatment_audio_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkTreatmentVideoFile
    network_treatment_video_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* cdrTerminationCause
    cdr_termination_cause = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* internalReleaseCause
    internal_release_cause = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* accessSendReasonHeader
    access_send_reason_header = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* networkSendReasonHeader
    network_send_reason_header = Field(
        type=bool,
        required=False,
    )


class SystemConfigurableTreatmentDeleteRequest(OCIRequest):
    """
    Delete a configurable treatment.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemConfigurableTreatmentGetRequest16(OCIRequest):
    """
    Get all the attributes of a configurable treatment.
    The response is either a ``SystemConfigurableTreatmentGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemConfigurableTreatmentModifyRequest(OCIRequest):
    """
    Modify the fields for a configurable treatment.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
        E(
            "charge_indicator",
            "chargeIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_sip_status_code",
            "accessSIPStatusCode",
            int,
            False,
            False,
            False,
        ),
        E(
            "access_sip_status_message",
            "accessSIPStatusMessage",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_sip_status_code",
            "networkSIPStatusCode",
            int,
            False,
            False,
            False,
        ),
        E(
            "network_sip_status_message",
            "networkSIPStatusMessage",
            str,
            False,
            False,
            False,
        ),
        E(
            "q850_cause_value",
            "q850CauseValue",
            int,
            False,
            False,
            False,
        ),
        E(
            "q850_text",
            "q850Text",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_treatment_audio_file",
            "accessTreatmentAudioFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_treatment_video_file",
            "accessTreatmentVideoFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_treatment_audio_file",
            "networkTreatmentAudioFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_treatment_video_file",
            "networkTreatmentVideoFile",
            str,
            False,
            False,
            False,
        ),
        E(
            "cdr_termination_cause",
            "cdrTerminationCause",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_release_cause",
            "internalReleaseCause",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_send_reason_header",
            "accessSendReasonHeader",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_send_reason_header",
            "networkSendReasonHeader",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* chargeIndicator
    charge_indicator = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* accessSIPStatusCode
    access_sip_status_code = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* accessSIPStatusMessage
    access_sip_status_message = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* networkSIPStatusCode
    network_sip_status_code = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* networkSIPStatusMessage
    network_sip_status_message = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* q850CauseValue
    q850_cause_value = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* q850Text
    q850_text = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessTreatmentAudioFile
    access_treatment_audio_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessTreatmentVideoFile
    access_treatment_video_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkTreatmentAudioFile
    network_treatment_audio_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkTreatmentVideoFile
    network_treatment_video_file = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* cdrTerminationCause
    cdr_termination_cause = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* internalReleaseCause
    internal_release_cause = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* accessSendReasonHeader
    access_send_reason_header = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* networkSendReasonHeader
    network_send_reason_header = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enforce_user_service_assignment",
            "enforceUserServiceAssignment",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enforceUserServiceAssignment
    enforce_user_service_assignment = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_name",
            "countryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "ring_period_milliseconds",
            "ringPeriodMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "off_hook_warning_timer_seconds",
            "offHookWarningTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_national_prefix",
            "enableNationalPrefix",
            bool,
            False,
            False,
            False,
        ),
        E(
            "national_prefix",
            "nationalPrefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_call_waiting_tones",
            "maxCallWaitingTones",
            int,
            False,
            False,
            False,
        ),
        E(
            "time_between_call_waiting_tones_milliseconds",
            "timeBetweenCallWaitingTonesMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_national_prefix_for_off_net_calls",
            "disableNationalPrefixForOffNetCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryName
    country_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* ringPeriodMilliseconds
    ring_period_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* offHookWarningTimerSeconds
    off_hook_warning_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableNationalPrefix
    enable_national_prefix = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* nationalPrefix
    national_prefix = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxCallWaitingTones
    max_call_waiting_tones = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* timeBetweenCallWaitingTonesMilliseconds
    time_between_call_waiting_tones_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableNationalPrefixForOffNetCalls
    disable_national_prefix_for_off_net_calls = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "ring_period_milliseconds",
            "ringPeriodMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "off_hook_warning_timer_seconds",
            "offHookWarningTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_national_prefix",
            "enableNationalPrefix",
            bool,
            False,
            False,
            False,
        ),
        E(
            "national_prefix",
            "nationalPrefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "become_default_country_code",
            "becomeDefaultCountryCode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_waiting_tones",
            "maxCallWaitingTones",
            int,
            False,
            False,
            False,
        ),
        E(
            "time_between_call_waiting_tones_milliseconds",
            "timeBetweenCallWaitingTonesMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_national_prefix_for_off_net_calls",
            "disableNationalPrefixForOffNetCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* ringPeriodMilliseconds
    ring_period_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* offHookWarningTimerSeconds
    off_hook_warning_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableNationalPrefix
    enable_national_prefix = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* nationalPrefix
    national_prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* becomeDefaultCountryCode
    become_default_country_code = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallWaitingTones
    max_call_waiting_tones = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* timeBetweenCallWaitingTonesMilliseconds
    time_between_call_waiting_tones_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableNationalPrefixForOffNetCalls
    disable_national_prefix_for_off_net_calls = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "cr_audit_enabled",
            "crAuditEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cr_audit_interval_milliseconds",
            "crAuditIntervalMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "cr_audit_timeout_milliseconds",
            "crAuditTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "cr_connection_enabled",
            "crConnectionEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cr_connection_timeout_milliseconds",
            "crConnectionTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* crAuditEnabled
    cr_audit_enabled = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* crAuditIntervalMilliseconds
    cr_audit_interval_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* crAuditTimeoutMilliseconds
    cr_audit_timeout_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* crConnectionEnabled
    cr_connection_enabled = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* crConnectionTimeoutMilliseconds
    cr_connection_timeout_milliseconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "screen_malicious_callers",
            "screenMaliciousCallers",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* screenMaliciousCallers
    screen_malicious_callers = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "transmission_method",
            "transmissionMethod",
            str,
            False,
            False,
            False,
        ),
        E(
            "signaling_content_type",
            "signalingContentType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* transmissionMethod
    transmission_method = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* signalingContentType
    signaling_content_type = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            False,
            False,
        ),
        E(
            "count_only_reset_supported_device",
            "countOnlyResetSupportedDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* deviceType
    device_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* countOnlyResetSupportedDevice
    count_only_reset_supported_device = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "cancel_all_events",
            "cancelAllEvents",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "cancel_multiple_events",
            "cancelMultipleEvents",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "event_id",
            "eventId",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* cancelAllEvents
    cancel_all_events = Field(
        type=str,
        required=True,
    )
    #: str: *Required* cancelMultipleEvents
    cancel_multiple_events = Field(
        type=str,
        required=True,
    )
    #: int: *Required* eventId
    event_id = Field(
        type=int,
        required=True,
    )


class SystemDeviceManagementTagAddRequest(OCIRequest):
    """
    Request to add a static configuration tag.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "system_default_tag_set",
            "systemDefaultTagSet",
            bool,
            False,
            True,
            False,
        ),
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Required* systemDefaultTagSet
    system_default_tag_set = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class SystemDeviceManagementTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "system_default_tag_set",
            "systemDefaultTagSet",
            bool,
            False,
            True,
            False,
        ),
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* systemDefaultTagSet
    system_default_tag_set = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "system_default_tag_set",
            "systemDefaultTagSet",
            bool,
            False,
            True,
            False,
        ),
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* systemDefaultTagSet
    system_default_tag_set = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )


class SystemDeviceManagementTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "system_default_tag_set",
            "systemDefaultTagSet",
            bool,
            False,
            True,
            False,
        ),
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_name",
            "tagName",
            str,
            False,
            True,
            False,
        ),
        E(
            "tag_value",
            "tagValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Required* systemDefaultTagSet
    system_default_tag_set = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* tagName
    tag_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* tagValue
    tag_value = Field(
        type=str,
        required=False,
    )


class SystemDeviceManagementTagSetAddRequest(OCIRequest):
    """
    Request to add a static configuration tag set.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )


class SystemDeviceManagementTagSetDeleteRequest(OCIRequest):
    """
    Request to delete a static configuration tag set.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "tag_set_name",
            "tagSetName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_tag_set_name",
            "newTagSetName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* tagSetName
    tag_set_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newTagSetName
    new_tag_set_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "disallow_authentication_name",
            "disallowAuthenticationName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_permanent_lockout_notification",
            "sendPermanentLockoutNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_authentication_lockout_type",
            "deviceProfileAuthenticationLockoutType",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_temporary_lockout_threshold",
            "deviceProfileTemporaryLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "device_profile_wait_algorithm",
            "deviceProfileWaitAlgorithm",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_lockout_fixed_minutes",
            "deviceProfileLockoutFixedMinutes",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_profile_permanent_lockout_threshold",
            "deviceProfilePermanentLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* disallowAuthenticationName
    disallow_authentication_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendPermanentLockoutNotification
    send_permanent_lockout_notification = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* permanentLockoutNotifyEmailAddress
    permanent_lockout_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceProfileAuthenticationLockoutType
    device_profile_authentication_lockout_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* deviceProfileTemporaryLockoutThreshold
    device_profile_temporary_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* deviceProfileWaitAlgorithm
    device_profile_wait_algorithm = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceProfileLockoutFixedMinutes
    device_profile_lockout_fixed_minutes = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* deviceProfilePermanentLockoutThreshold
    device_profile_permanent_lockout_threshold = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "allow_conference",
            "allowConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_music_on_hold",
            "allowMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_conference",
            "onlyConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_video_capable",
            "onlyVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_optional_ip_address",
            "onlyOptionalIpAddress",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* allowConference
    allow_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowMusicOnHold
    allow_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyConference
    only_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyVideoCapable
    only_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyOptionalIpAddress
    only_optional_ip_address = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "allow_conference",
            "allowConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_music_on_hold",
            "allowMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_conference",
            "onlyConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_video_capable",
            "onlyVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_optional_ip_address",
            "onlyOptionalIpAddress",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* allowConference
    allow_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowMusicOnHold
    allow_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyConference
    only_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyVideoCapable
    only_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyOptionalIpAddress
    only_optional_ip_address = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "allow_conference",
            "allowConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_music_on_hold",
            "allowMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_conference",
            "onlyConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_video_capable",
            "onlyVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_optional_ip_address",
            "onlyOptionalIpAddress",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* allowConference
    allow_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowMusicOnHold
    allow_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyConference
    only_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyVideoCapable
    only_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyOptionalIpAddress
    only_optional_ip_address = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "allow_conference",
            "allowConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_music_on_hold",
            "allowMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_conference",
            "onlyConference",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_video_capable",
            "onlyVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "only_optional_ip_address",
            "onlyOptionalIpAddress",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* allowConference
    allow_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowMusicOnHold
    allow_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyConference
    only_conference = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyVideoCapable
    only_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* onlyOptionalIpAddress
    only_optional_ip_address = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "file",
            "file",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* file
    file = Field(
        type=str,
        required=True,
    )


class SystemDialPlanPolicyAddAccessCodeRequest(OCIRequest):
    """
    Request to add a system-level Dial Plan Access Code and its all attribues.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_screening_services",
            "includeCodeForScreeningServices",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_secondary_dial_tone",
            "enableSecondaryDialTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeCodeForNetworkTranslationsAndRouting
    include_code_for_network_translations_and_routing = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeCodeForScreeningServices
    include_code_for_screening_services = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableSecondaryDialTone
    enable_secondary_dial_tone = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "access_code",
            "accessCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_code_for_screening_services",
            "includeCodeForScreeningServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_secondary_dial_tone",
            "enableSecondaryDialTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* accessCode
    access_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* includeCodeForNetworkTranslationsAndRouting
    include_code_for_network_translations_and_routing = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeCodeForScreeningServices
    include_code_for_screening_services = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableSecondaryDialTone
    enable_secondary_dial_tone = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemDialPlanPolicyModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Dial Plan Policy.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "requires_access_code_for_public_calls",
            "requiresAccessCodeForPublicCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_e164_public_calls",
            "allowE164PublicCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefer_e164_number_format_for_callback_services",
            "preferE164NumberFormatForCallbackServices",
            bool,
            False,
            False,
            False,
        ),
        E(
            "public_digit_map",
            "publicDigitMap",
            str,
            False,
            False,
            False,
        ),
        E(
            "private_digit_map",
            "privateDigitMap",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* requiresAccessCodeForPublicCalls
    requires_access_code_for_public_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowE164PublicCalls
    allow_e164_public_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* preferE164NumberFormatForCallbackServices
    prefer_e164_number_format_for_callback_services = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* publicDigitMap
    public_digit_map = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* privateDigitMap
    private_digit_map = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            True,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchCallType
    match_call_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=True,
    )


class SystemDialableCallerIDCriteriaDeleteRequest(OCIRequest):
    """
    Delete a Dialable Caller ID Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemDialableCallerIDCriteriaGetRequest(OCIRequest):
    """
    Get an existing Dialable Caller ID Criteria.
    The response is either a
    ``SystemDialableCallerIDCriteriaGetRequest()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "access_code",
            "accessCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "public_digit_map",
            "publicDigitMap",
            str,
            False,
            False,
            False,
        ),
        E(
            "private_digit_map",
            "privateDigitMap",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* accessCode
    access_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* publicDigitMap
    public_digit_map = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* privateDigitMap
    private_digit_map = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class SystemDnGetUtilizationRequest14sp3(OCIRequest):
    """
    Get the utilization of a single DN.
    The response is either
    ``SystemDnGetUtilizationResponse14sp3()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class SystemDomainAddRequest(OCIRequest):
    """
    Add a system domain to the system.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


class SystemDomainDeleteRequest(OCIRequest):
    """
    Delete a system domain from the system.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


class SystemDomainGetAssignedServiceProviderListRequest(OCIRequest):
    """
    Request a list of service providers that have a given domain assigned.
    The response is either ``SystemDomainGetAssignedServiceProviderListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "use_alias_for_domain",
            "useAliasForDomain",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_domain",
            "defaultDomain",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* useAliasForDomain
    use_alias_for_domain = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultDomain
    default_domain = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "default_from_address",
            "defaultFromAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* defaultFromAddress
    default_from_address = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "is_send_enabled",
            "isSendEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "server1_net_address",
            "server1NetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server1_send_port",
            "server1SendPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "server1_retrieve_port",
            "server1RetrievePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "server2_net_address",
            "server2NetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server2_send_port",
            "server2SendPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "server2_retrieve_port",
            "server2RetrievePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "shared_secret",
            "sharedSecret",
            str,
            False,
            False,
            False,
        ),
        E(
            "retransmission_delay_milli_seconds",
            "retransmissionDelayMilliSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_transmissions",
            "maxTransmissions",
            int,
            False,
            False,
            False,
        ),
        E(
            "soap_timeout_seconds",
            "soapTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_dbs",
            "useDBS",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_non_paged_response_size",
            "maxNonPagedResponseSize",
            int,
            False,
            False,
            False,
        ),
        E(
            "ecl_query_application_url",
            "eclQueryApplicationURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "ecl_query_data_repository_url",
            "eclQueryDataRepositoryURL",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isSendEnabled
    is_send_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* server1NetAddress
    server1_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* server1SendPort
    server1_send_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* server1RetrievePort
    server1_retrieve_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* server2NetAddress
    server2_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* server2SendPort
    server2_send_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* server2RetrievePort
    server2_retrieve_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* sharedSecret
    shared_secret = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* retransmissionDelayMilliSeconds
    retransmission_delay_milli_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxTransmissions
    max_transmissions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* soapTimeoutSeconds
    soap_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useDBS
    use_dbs = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxNonPagedResponseSize
    max_non_paged_response_size = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* eclQueryApplicationURL
    ecl_query_application_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* eclQueryDataRepositoryURL
    ecl_query_data_repository_url = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "treat_virtual_on_net_calls_as_internal",
            "treatVirtualOnNetCallsAsInternal",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* treatVirtualOnNetCallsAsInternal
    treat_virtual_on_net_calls_as_internal = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enable_post_announcement_delay_timer",
            "enablePostAnnouncementDelayTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "post_announcement_delay_seconds",
            "postAnnouncementDelaySeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enablePostAnnouncementDelayTimer
    enable_post_announcement_delay_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* postAnnouncementDelaySeconds
    post_announcement_delay_seconds = Field(
        type=int,
        required=False,
    )


class SystemExpensiveCallTypeAddRequest(OCIRequest):
    """
    Add an alternate call indicator to the list of expensive alternate call indicators.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "alternate_call_indicator",
            "alternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_audio_file",
            "treatmentAudioFile",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* alternateCallIndicator
    alternate_call_indicator = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* treatmentAudioFile
    treatment_audio_file = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "alternate_call_indicator",
            "alternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* alternateCallIndicator
    alternate_call_indicator = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "alternate_call_indicator",
            "alternateCallIndicator",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_audio_file",
            "treatmentAudioFile",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* alternateCallIndicator
    alternate_call_indicator = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* treatmentAudioFile
    treatment_audio_file = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "file_name",
            "fileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileName
    file_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "file_name",
            "fileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileName
    file_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "min_extension_length",
            "minExtensionLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_extension_length",
            "maxExtensionLength",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* minExtensionLength
    min_extension_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxExtensionLength
    max_extension_length = Field(
        type=int,
        required=False,
    )


class SystemExternalAuthenticationAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the external authentication access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemExternalAuthenticationAddACLEntryRequest14sp2(OCIRequest):
    """
    Add an entry to the external authentication access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemExternalAuthenticationDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the external authentication access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


class SystemExternalAuthenticationDeleteACLEntryRequest14sp2(OCIRequest):
    """
    Delete an entry from the external authentication access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemExternalAuthenticationModifyACLEntryRequest14sp2(OCIRequest):
    """
    Modify an entry from the external authentication access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_uri",
            "serviceURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_emergency_number",
            "defaultEmergencyNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "supports_dnssrv",
            "supportsDNSSRV",
            bool,
            False,
            False,
            False,
        ),
        E(
            "connection_timeout_seconds",
            "connectionTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* serviceURI
    service_uri = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultEmergencyNumber
    default_emergency_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportsDNSSRV
    supports_dnssrv = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* connectionTimeoutSeconds
    connection_timeout_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "file_name",
            "fileName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileName
    file_name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceDeleteRequest(OCIRequest):
    """
    Delete a file repository.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceGetRequest16(OCIRequest):
    """
    Request to get the file repository information.  The response is either
    ``SystemFileRepositoryDeviceGetResponse16()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceGetRequest20(OCIRequest):
    """
    Request to get the file repository information.  The response is either
    ``SystemFileRepositoryDeviceGetResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceModifyRequest(OCIRequest):
    """
    Modify a file repository.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "root_directory",
            "rootDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "secure",
            "secure",
            bool,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "ftp_passive",
            "ftpPassive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "ftp_remote_verification",
            "ftpRemoteVerification",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* rootDirectory
    root_directory = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* secure
    secure = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* ftpPassive
    ftp_passive = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* ftpRemoteVerification
    ftp_remote_verification = Field(
        type=bool,
        required=False,
    )


class SystemFileRepositoryDeviceUserAddRequest(OCIRequest):
    """
    Add a new file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_put",
            "allowPut",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_delete",
            "allowDelete",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_get",
            "allowGet",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* password
    password = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allowPut
    allow_put = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowDelete
    allow_delete = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowGet
    allow_get = Field(
        type=bool,
        required=True,
    )


class SystemFileRepositoryDeviceUserDeleteRequest(OCIRequest):
    """
    Delete a file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceUserGetListRequest(OCIRequest):
    """
    Request the list of users for a file repository in the system.
    The response is either a ``SystemFileRepositoryDeviceUserGetListResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceUserGetRequest(OCIRequest):
    """
    Request a user of a file repository in the system.
    The response is either a ``SystemFileRepositoryDeviceUserGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )


class SystemFileRepositoryDeviceUserModifyRequest(OCIRequest):
    """
    Modify a file repository user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "file_repository_name",
            "fileRepositoryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            True,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_put",
            "allowPut",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_delete",
            "allowDelete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_get",
            "allowGet",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* fileRepositoryName
    file_repository_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userName
    user_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowPut
    allow_put = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDelete
    allow_delete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowGet
    allow_get = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enabled",
            "enabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "heartbeat_interval",
            "heartbeatInterval",
            int,
            False,
            False,
            False,
        ),
        E(
            "heartbeat_timeout",
            "heartbeatTimeout",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enabled
    enabled = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* heartbeatInterval
    heartbeat_interval = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* heartbeatTimeout
    heartbeat_timeout = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enabled",
            "enabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enabled
    enabled = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "night_forward_group_calls_within_enterprise",
            "nightForwardGroupCallsWithinEnterprise",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* nightForwardGroupCallsWithinEnterprise
    night_forward_group_calls_within_enterprise = Field(
        type=bool,
        required=False,
    )


class SystemHolidayScheduleDeleteRequest(OCIRequest):
    """
    Delete a system holiday schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )


class SystemHomeNetworkAddRequest(OCIRequest):
    """
    Add a Home Network.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "msc_address",
            "mscAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* mscAddress
    msc_address = Field(
        type=str,
        required=True,
    )


class SystemHomeNetworkDeleteRequest(OCIRequest):
    """
    Delete a Home Network.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "msc_address",
            "mscAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* mscAddress
    msc_address = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "anonymous_instead_of_private_clid",
            "anonymousInsteadOfPrivateCLID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "remove_hunt_group_name_from_clid",
            "removeHuntGroupNameFromCLID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "uniform_call_distribution_policy_scope",
            "uniformCallDistributionPolicyScope",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* anonymousInsteadOfPrivateCLID
    anonymous_instead_of_private_clid = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* removeHuntGroupNameFromCLID
    remove_hunt_group_name_from_clid = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* uniformCallDistributionPolicyScope
    uniform_call_distribution_policy_scope = Field(
        type=str,
        required=False,
    )


class SystemHuntGroupModifyRequest21(OCIRequest):
    """
    Modify the system level data associated with Hunt Group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "remove_hunt_group_name_from_clid",
            "removeHuntGroupNameFromCLID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "uniform_call_distribution_policy_scope",
            "uniformCallDistributionPolicyScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_device_initiated_forward",
            "allowAgentDeviceInitiatedForward",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* removeHuntGroupNameFromCLID
    remove_hunt_group_name_from_clid = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* uniformCallDistributionPolicyScope
    uniform_call_distribution_policy_scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAgentDeviceInitiatedForward
    allow_agent_device_initiated_forward = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "default_activation_digits",
            "defaultActivationDigits",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* defaultActivationDigits
    default_activation_digits = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "default_flash_activation_digits",
            "defaultFlashActivationDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_call_transfer_activation_digits",
            "defaultCallTransferActivationDigits",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* defaultFlashActivationDigits
    default_flash_activation_digits = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultCallTransferActivationDigits
    default_call_transfer_activation_digits = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_domain",
            "serviceDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_port",
            "servicePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "add_service_provider_in_imp_user_id",
            "addServiceProviderInIMPUserId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bosh_url",
            "boshURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_imp_password_retrieval",
            "allowImpPasswordRetrieval",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* serviceDomain
    service_domain = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* servicePort
    service_port = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* addServiceProviderInIMPUserId
    add_service_provider_in_imp_user_id = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* boshURL
    bosh_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowImpPasswordRetrieval
    allow_imp_password_retrieval = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "pre_answer_action_timeout_seconds",
            "preAnswerActionTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "msg_reject_no_voice_mail",
            "msgRejectNoVoiceMail",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_reject_voice_mail",
            "msgRejectVoiceMail",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_pre_answer_wait",
            "msgPreAnswerWait",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_busy",
            "msgBusy",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_release",
            "msgRelease",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_no_answer",
            "msgNoAnswer",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_ocp_reject",
            "msgOCPReject",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_forward_loop",
            "msgForwardLoop",
            str,
            False,
            False,
            False,
        ),
        E(
            "msg_temporarily_unavailable",
            "msgTemporarilyUnavailable",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* preAnswerActionTimeoutSeconds
    pre_answer_action_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* msgRejectNoVoiceMail
    msg_reject_no_voice_mail = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgRejectVoiceMail
    msg_reject_voice_mail = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgPreAnswerWait
    msg_pre_answer_wait = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgBusy
    msg_busy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgRelease
    msg_release = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgNoAnswer
    msg_no_answer = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgOCPReject
    msg_ocp_reject = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgForwardLoop
    msg_forward_loop = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* msgTemporarilyUnavailable
    msg_temporarily_unavailable = Field(
        type=str,
        required=False,
    )


class SystemInterceptUserDeleteDnListRequest(OCIRequest):
    """
    Request to delete an Intercept User number(s) from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "phone_numbers",
            "phoneNumbers",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* phoneNumbers
    phone_numbers = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemInterceptUserModifyRequest(OCIRequest):
    """
    Modify the system-level intercept user service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "emergency_and_repair_intercept",
            "emergencyAndRepairIntercept",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* emergencyAndRepairIntercept
    emergency_and_repair_intercept = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "default_from_address",
            "defaultFromAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* defaultFromAddress
    default_from_address = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "server_net_address",
            "serverNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_base",
            "searchBase",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_ssl",
            "useSSL",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authenticated_dn",
            "authenticatedDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticated_password",
            "authenticatedPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_sort_enabled",
            "isSortEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_paged_result_enabled",
            "isPagedResultEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_filter",
            "searchFilter",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_search_attribute_in_search_filter",
            "includeSearchAttributeInSearchFilter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "column1_attribute_name",
            "column1AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column2_attribute_name",
            "column2AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column3_attribute_name",
            "column3AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column4_attribute_name",
            "column4AttributeName",
            str,
            False,
            False,
            False,
        ),
        E(
            "column1_label",
            "column1Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column2_label",
            "column2Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column3_label",
            "column3Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "column4_label",
            "column4Label",
            str,
            False,
            False,
            False,
        ),
        E(
            "search_column",
            "searchColumn",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* serverNetAddress
    server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* searchBase
    search_base = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSSL
    use_ssl = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticatedDN
    authenticated_dn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* authenticatedPassword
    authenticated_password = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isSortEnabled
    is_sort_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isPagedResultEnabled
    is_paged_result_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* searchFilter
    search_filter = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* includeSearchAttributeInSearchFilter
    include_search_attribute_in_search_filter = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* column1AttributeName
    column1_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column2AttributeName
    column2_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column3AttributeName
    column3_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column4AttributeName
    column4_attribute_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column1Label
    column1_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column2Label
    column2_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column3Label
    column3_label = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* column4Label
    column4_label = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* searchColumn
    search_column = Field(
        type=int,
        required=False,
    )


class SystemLanguageAddRequest(OCIRequest):
    """
    Request to add a language to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "locale",
            "locale",
            str,
            False,
            True,
            False,
        ),
        E(
            "encoding",
            "encoding",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locale
    locale = Field(
        type=str,
        required=True,
    )
    #: str: *Required* encoding
    encoding = Field(
        type=str,
        required=True,
    )


class SystemLanguageDeleteRequest(OCIRequest):
    """
    Request to delete a language from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "become_default_language",
            "becomeDefaultLanguage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "locale",
            "locale",
            str,
            False,
            False,
            False,
        ),
        E(
            "encoding",
            "encoding",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* becomeDefaultLanguage
    become_default_language = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* locale
    locale = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* encoding
    encoding = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "line_type",
            "lineType",
            str,
            False,
            True,
            False,
        ),
        E(
            "match_action",
            "matchAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "no_match_action",
            "noMatchAction",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* lineType
    line_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* matchAction
    match_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* noMatchAction
    no_match_action = Field(
        type=str,
        required=False,
    )


class SystemLegacyAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modifies the system's legacy automatic callback attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "max_monitors_per_originator",
            "maxMonitorsPerOriginator",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_monitors_per_terminator",
            "maxMonitorsPerTerminator",
            int,
            False,
            False,
            False,
        ),
        E(
            "t2_minutes",
            "t2Minutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "t4_seconds",
            "t4Seconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "t5_seconds",
            "t5Seconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "t6_minutes",
            "t6Minutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "t7_minutes",
            "t7Minutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "t8_seconds",
            "t8Seconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "t_ring_seconds",
            "tRingSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "t10_o_minutes",
            "t10OMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "t10_t_minutes",
            "t10TMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxMonitorsPerOriginator
    max_monitors_per_originator = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMonitorsPerTerminator
    max_monitors_per_terminator = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t2Minutes
    t2_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t4Seconds
    t4_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t5Seconds
    t5_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t6Minutes
    t6_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t7Minutes
    t7_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t8Seconds
    t8_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* tRingSeconds
    t_ring_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t10OMinutes
    t10_o_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* t10TMinutes
    t10_t_minutes = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "physical_location_indicator",
            "physicalLocationIndicator",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_msc_validation",
            "enforceMscValidation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_office_zone_announcement",
            "enableOfficeZoneAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enhance_office_zone",
            "enhanceOfficeZone",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* physicalLocationIndicator
    physical_location_indicator = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceMscValidation
    enforce_msc_validation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableOfficeZoneAnnouncement
    enable_office_zone_announcement = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enhanceOfficeZone
    enhance_office_zone = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "primary_server_net_address",
            "primaryServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "secondary_server_net_address",
            "secondaryServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_from_address",
            "defaultFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_subject",
            "defaultSubject",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_dnssrv_for_mail_server_access",
            "supportDNSSRVForMailServerAccess",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* primaryServerNetAddress
    primary_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* secondaryServerNetAddress
    secondary_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultFromAddress
    default_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultSubject
    default_subject = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* supportDNSSRVForMailServerAccess
    support_dnssrv_for_mail_server_access = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "play_mct_warning_announcement",
            "playMCTWarningAnnouncement",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* playMCTWarningAnnouncement
    play_mct_warning_announcement = Field(
        type=bool,
        required=False,
    )


class SystemMediaAddRequest(OCIRequest):
    """
    Request to add a Media to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "media_name",
            "mediaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "codec_name",
            "codecName",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_type",
            "mediaType",
            str,
            False,
            True,
            False,
        ),
        E(
            "bandwidth_enforcement_type",
            "bandwidthEnforcementType",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_bandwidth",
            "mediaBandwidth",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* mediaName
    media_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* codecName
    codec_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mediaType
    media_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* bandwidthEnforcementType
    bandwidth_enforcement_type = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* mediaBandwidth
    media_bandwidth = Field(
        type=int,
        required=False,
    )


class SystemMediaAddRequest16(OCIRequest):
    """
    Request to add a Media to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "media_name",
            "mediaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "codec_name",
            "codecName",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_type",
            "mediaType",
            str,
            False,
            True,
            False,
        ),
        E(
            "bandwidth_enforcement_type",
            "bandwidthEnforcementType",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_bandwidth",
            "mediaBandwidth",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* mediaName
    media_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* codecName
    codec_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mediaType
    media_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* bandwidthEnforcementType
    bandwidth_enforcement_type = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* mediaBandwidth
    media_bandwidth = Field(
        type=int,
        required=False,
    )


class SystemMediaDeleteRequest(OCIRequest):
    """
    Request to delete a Media from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "media_name",
            "mediaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* mediaName
    media_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "media_name",
            "mediaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "codec_name",
            "codecName",
            str,
            False,
            False,
            False,
        ),
        E(
            "bandwidth_enforcement_type",
            "bandwidthEnforcementType",
            str,
            False,
            False,
            False,
        ),
        E(
            "media_bandwidth",
            "mediaBandwidth",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* mediaName
    media_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* codecName
    codec_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* bandwidthEnforcementType
    bandwidth_enforcement_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mediaBandwidth
    media_bandwidth = Field(
        type=int,
        required=False,
    )


class SystemMediaServerAddRequest14(OCIRequest):
    """
    Request to add a Media Server to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Required* transportProtocol
    transport_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemMediaServerDeleteRequest(OCIRequest):
    """
    Request to delete a Media Server from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "media_server_response_timer_milliseconds",
            "mediaServerResponseTimerMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_server_selection_route_timer_milliseconds",
            "mediaServerSelectionRouteTimerMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_static_media_server_device",
            "useStaticMediaServerDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* mediaServerResponseTimerMilliseconds
    media_server_response_timer_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mediaServerSelectionRouteTimerMilliseconds
    media_server_selection_route_timer_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useStaticMediaServerDevice
    use_static_media_server_device = Field(
        type=bool,
        required=False,
    )


class SystemMediaSetAddRequest(OCIRequest):
    """
    Request to add a Media Set.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "set_name",
            "setName",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_name",
            "mediaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* setName
    set_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mediaName
    media_name = Field(
        type=str,
        required=True,
    )


class SystemMediaSetDeleteRequest(OCIRequest):
    """
    Request to delete a Media Set.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "set_name",
            "setName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* setName
    set_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "set_name",
            "setName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* setName
    set_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "restrict_non_audio_video_media_types",
            "restrictNonAudioVideoMediaTypes",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* restrictNonAudioVideoMediaTypes
    restrict_non_audio_video_media_types = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "delay_milliseconds",
            "delayMilliseconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* delayMilliseconds
    delay_milliseconds = Field(
        type=int,
        required=False,
    )


class SystemNetworkClassOfServiceDeleteRequest(OCIRequest):
    """
    Delete a Network Class of Service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemNetworkClassOfServiceGetRequest17(OCIRequest):
    """
    Get an existing Network Class of Service.
    The response is either a ``SystemNetworkClassOfServiceGetResponse17()``
    or an ``ErrorResponse()``.

    Replaced by ``SystemNetworkClassOfServiceGetRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class SystemNetworkClassOfServiceGetRequest19sp1(OCIRequest):
    """
    Get an existing Network Class of Service.
    The response is either a ``SystemNetworkClassOfServiceGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "polling_interval_minutes",
            "pollingIntervalMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "failed_polling_interval_minutes",
            "failedPollingIntervalMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* pollingIntervalMinutes
    polling_interval_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failedPollingIntervalMinutes
    failed_polling_interval_minutes = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wait_period_seconds",
            "waitPeriodSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* waitPeriodSeconds
    wait_period_seconds = Field(
        type=int,
        required=False,
    )


class SystemNetworkRoutingServerAddRequest(OCIRequest):
    """
    Request to add a routing Network Server to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "poll",
            "poll",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Required* transportProtocol
    transport_protocol = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* poll
    poll = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemNetworkRoutingServerDeleteRequest(OCIRequest):
    """
    Request to delete a routing Network Server from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "poll",
            "poll",
            bool,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* poll
    poll = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "enable_sync",
            "enableSync",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sync_line_ports",
            "syncLinePorts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sync_device_management_info",
            "syncDeviceManagementInfo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sync_trunk_groups",
            "syncTrunkGroups",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableSync
    enable_sync = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* syncLinePorts
    sync_line_ports = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* syncDeviceManagementInfo
    sync_device_management_info = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* syncTrunkGroups
    sync_trunk_groups = Field(
        type=bool,
        required=False,
    )


class SystemNetworkSynchingServerAddRequest(OCIRequest):
    """
    Request to add a Network Server to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemNetworkSynchingServerDeleteRequest(OCIRequest):
    """
    Request to delete a Network Server from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "become_preferred",
            "becomePreferred",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* becomePreferred
    become_preferred = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "use_number_activation",
            "useNumberActivation",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* useNumberActivation
    use_number_activation = Field(
        type=bool,
        required=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.
    """

    _ELEMENTS = (
        E(
            "number_activation_mode",
            "numberActivationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_enterprise_trunk_number_range_activation",
            "enableEnterpriseTrunkNumberRangeActivation",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* numberActivationMode
    number_activation_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEnterpriseTrunkNumberRangeActivation
    enable_enterprise_trunk_number_range_activation = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
        E(
            "status",
            "status",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )
    #: str: *Required* status
    status = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )


class SystemNumberPortabilityQueryDigitPatternGetRequest(OCIRequest):
    """
    Request to get a System Number Portability Status Digit Pattern mapping.
    The response is either a ``SystemNumberPortabilityQueryDigitPatternGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )


class SystemNumberPortabilityQueryDigitPatternModifyRequest(OCIRequest):
    """
    Request to modify a System Number Portability Status Digit Pattern mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "digit_pattern",
            "digitPattern",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_digit_pattern",
            "newDigitPattern",
            str,
            False,
            False,
            False,
        ),
        E(
            "status",
            "status",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* digitPattern
    digit_pattern = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newDigitPattern
    new_digit_pattern = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* status
    status = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "continue_call_as_dialed_on_timeout_or_error",
            "continueCallAsDialedOnTimeoutOrError",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_portability_name_lookup_timeout_milliseconds",
            "numberPortabilityNameLookupTimeoutMilliseconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* continueCallAsDialedOnTimeoutOrError
    continue_call_as_dialed_on_timeout_or_error = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberPortabilityNameLookupTimeoutMilliseconds
    number_portability_name_lookup_timeout_milliseconds = Field(
        type=int,
        required=False,
    )


class SystemNumberPortabilityQueryStatusAddRequest(OCIRequest):
    """
    Add a system number portability status information.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "status",
            "status",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_file_name",
            "treatmentFileName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* status
    status = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* treatmentFileName
    treatment_file_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "status",
            "status",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* status
    status = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "status",
            "status",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* status
    status = Field(
        type=str,
        required=True,
    )


class SystemNumberPortabilityQueryStatusModifyRequest(OCIRequest):
    """
    Modify the system number portability status information.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "status_name",
            "statusName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_status_name",
            "newStatusName",
            str,
            False,
            False,
            False,
        ),
        E(
            "treatment_file_name",
            "treatmentFileName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* statusName
    status_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newStatusName
    new_status_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* treatmentFileName
    treatment_file_name = Field(
        type=str,
        required=False,
    )


class SystemOCIAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the OCI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCICallControlAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the OCI call control access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCICallControlApplicationAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the OCI call control application access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCICallControlApplicationAddRequest(OCIRequest):
    """
    Add an application to the OCI call control application list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_system_wide",
            "enableSystemWide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableSystemWide
    enable_system_wide = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCICallControlApplicationAddRequest14sp9(OCIRequest):
    """
    Add an application to the OCI call control application list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_system_wide",
            "enableSystemWide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "notification_timeout_seconds",
            "notificationTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableSystemWide
    enable_system_wide = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* notificationTimeoutSeconds
    notification_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCICallControlApplicationAddRequest17(OCIRequest):
    """
    Add an application to the OCI call control application list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_system_wide",
            "enableSystemWide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "notification_timeout_seconds",
            "notificationTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_event_channels_per_set",
            "maxEventChannelsPerSet",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableSystemWide
    enable_system_wide = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* notificationTimeoutSeconds
    notification_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: int: *Required* maxEventChannelsPerSet
    max_event_channels_per_set = Field(
        type=int,
        required=True,
    )


class SystemOCICallControlApplicationDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI call control application access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


class SystemOCICallControlApplicationDeleteRequest(OCIRequest):
    """
    Delete an entry from the OCI call control application list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )


class SystemOCICallControlApplicationGetACLListRequest(OCIRequest):
    """
    Get the OCI call control access control list.
    The response is either ``SystemOCICallControlApplicationGetACLListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCICallControlApplicationModifyRequest(OCIRequest):
    """
    Modify an application from the OCI call control application list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "application_id",
            "applicationId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_system_wide",
            "enableSystemWide",
            bool,
            False,
            False,
            False,
        ),
        E(
            "notification_timeout_seconds",
            "notificationTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_event_channels_per_set",
            "maxEventChannelsPerSet",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* applicationId
    application_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableSystemWide
    enable_system_wide = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* notificationTimeoutSeconds
    notification_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxEventChannelsPerSet
    max_event_channels_per_set = Field(
        type=int,
        required=False,
    )


class SystemOCICallControlDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI call control access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCIDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemOCIReportingAddACLEntryRequest13mp9(OCIRequest):
    """
    Add an entry to the OCI Reporting Access Control List.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "restrict_messages",
            "restrictMessages",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* restrictMessages
    restrict_messages = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "message_name_starts_with",
            "messageNameStartsWith",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Required* messageNameStartsWith
    message_name_starts_with = Field(
        type=str,
        required=True,
    )


class SystemOCIReportingDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI Reporting Access Control List.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "delete_all_message_names",
            "deleteAllMessageNames",
            bool,
            False,
            True,
            False,
        ),
        E(
            "message_name_starts_with",
            "messageNameStartsWith",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* deleteAllMessageNames
    delete_all_message_names = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* messageNameStartsWith
    message_name_starts_with = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "restrict_messages",
            "restrictMessages",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* restrictMessages
    restrict_messages = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_connection_ping",
            "enableConnectionPing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "connection_ping_interval_seconds",
            "connectionPingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "alter_passwords",
            "alterPasswords",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_public_identity_reporting",
            "enablePublicIdentityReporting",
            bool,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableConnectionPing
    enable_connection_ping = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* connectionPingIntervalSeconds
    connection_ping_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* alterPasswords
    alter_passwords = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enablePublicIdentityReporting
    enable_public_identity_reporting = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "primary_zone_name",
            "primaryZoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* primaryZoneName
    primary_zone_name = Field(
        type=str,
        required=True,
    )


class SystemOfficeZoneDeleteRequest(OCIRequest):
    """
    Delete an Office Zone.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )


class SystemOfficeZoneGetAssignedServiceProviderListRequest(OCIRequest):
    """
    Request a list of service providers that have a given Office Zone assigned.  The
    response is either a ``SystemOfficeZoneGetAssignedServiceProviderListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )


class SystemOfficeZoneGetZoneUsageListRequest(OCIRequest):
    """
    Get the list of Office Zones that contain a specific
    Zone.
    The response is either a ``SystemOfficeZoneGetZoneUsageListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )


class SystemOutgoingCallingPlanCallTypeAddMappingRequest(OCIRequest):
    """
    Add a system outgoing calling plan call type mapping.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_map",
            "digitMap",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_type",
            "callType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitMap
    digit_map = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callType
    call_type = Field(
        type=str,
        required=True,
    )


class SystemOutgoingCallingPlanCallTypeDeleteMappingRequest(OCIRequest):
    """
    Delete a system outgoing calling plan call type mapping.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_map",
            "digitMap",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* digitMap
    digit_map = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "country_code",
            "countryCode",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* countryCode
    country_code = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "direct_transfer_screening",
            "directTransferScreening",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_enhanced_toll_call_typing",
            "enableEnhancedTollCallTyping",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* directTransferScreening
    direct_transfer_screening = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableEnhancedTollCallTyping
    enable_enhanced_toll_call_typing = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "rules_apply_to",
            "rulesApplyTo",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_id",
            "disallowUserId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "password_expires_days",
            "passwordExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_rules_modification",
            "disallowRulesModification",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* rulesApplyTo
    rules_apply_to = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowWebAddExternalAuthenticationUsers
    allow_web_add_external_authentication_users = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserId
    disallow_user_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* passwordExpiresDays
    password_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowRulesModification
    disallow_rules_modification = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "rules_apply_to",
            "rulesApplyTo",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_id",
            "disallowUserId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "password_expires_days",
            "passwordExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "disallow_previous_passwords",
            "disallowPreviousPasswords",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_previous_passwords",
            "numberOfPreviousPasswords",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* rulesApplyTo
    rules_apply_to = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowWebAddExternalAuthenticationUsers
    allow_web_add_external_authentication_users = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserId
    disallow_user_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* passwordExpiresDays
    password_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* disallowPreviousPasswords
    disallow_previous_passwords = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfPreviousPasswords
    number_of_previous_passwords = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "ftp_host_net_address",
            "ftpHostNetAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "ftp_user_id",
            "ftpUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "ftp_user_password",
            "ftpUserPassword",
            str,
            False,
            True,
            False,
        ),
        E(
            "passive_ftp",
            "passiveFTP",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* ftpHostNetAddress
    ftp_host_net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Required* ftpUserId
    ftp_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* ftpUserPassword
    ftp_user_password = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* passiveFTP
    passive_ftp = Field(
        type=bool,
        required=False,
    )


class SystemPerformanceMeasurementReportingDeleteFileServerRequest(OCIRequest):
    """
    Delete a performance measurements reporting ftp server.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "ftp_host_net_address",
            "ftpHostNetAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* ftpHostNetAddress
    ftp_host_net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "ftp_host_net_address",
            "ftpHostNetAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "passive_ftp",
            "passiveFTP",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* ftpHostNetAddress
    ftp_host_net_address = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* passiveFTP
    passive_ftp = Field(
        type=bool,
        required=False,
    )


class SystemPerformanceMeasurementReportingModifyRequest(OCIRequest):
    """
    Modify the performance measurements reporting settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reporting_interval",
            "reportingInterval",
            int,
            False,
            False,
            False,
        ),
        E(
            "reset_measurements_after_each_report",
            "resetMeasurementsAfterEachReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "report_enterprise",
            "reportEnterprise",
            bool,
            False,
            False,
            False,
        ),
        E(
            "report_service_provider",
            "reportServiceProvider",
            bool,
            False,
            False,
            False,
        ),
        E(
            "report_device",
            "reportDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* reportingInterval
    reporting_interval = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* resetMeasurementsAfterEachReport
    reset_measurements_after_each_report = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* reportEnterprise
    report_enterprise = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* reportServiceProvider
    report_service_provider = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* reportDevice
    report_device = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "transfer_to_attendant_key",
            "transferToAttendantKey",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_to_voice_messaging_key",
            "transferToVoiceMessagingKey",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* transferToAttendantKey
    transfer_to_attendant_key = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferToVoiceMessagingKey
    transfer_to_voice_messaging_key = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "always_allow_emergency_calls",
            "alwaysAllowEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* alwaysAllowEmergencyCalls
    always_allow_emergency_calls = Field(
        type=bool,
        required=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
    """

    _ELEMENTS = (
        E(
            "group_calling_plan_access",
            "groupCallingPlanAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_extension_access",
            "groupExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_ldap_integration_access",
            "groupLDAPIntegrationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_voice_messaging_access",
            "groupVoiceMessagingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_department_admin_user_access",
            "groupDepartmentAdminUserAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_department_admin_trunk_group_access",
            "groupDepartmentAdminTrunkGroupAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_department_admin_phone_number_extension_access",
            "groupDepartmentAdminPhoneNumberExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_department_admin_calling_line_id_number_access",
            "groupDepartmentAdminCallingLineIdNumberAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_user_authentication_access",
            "groupUserAuthenticationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_user_group_directory_access",
            "groupUserGroupDirectoryAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_user_profile_access",
            "groupUserProfileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_user_enhanced_call_logs_access",
            "groupUserEnhancedCallLogsAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_user_auto_attendant_name_dialing_access",
            "groupUserAutoAttendantNameDialingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_profile_access",
            "groupAdminProfileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_user_access",
            "groupAdminUserAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_admin_access",
            "groupAdminAdminAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_department_access",
            "groupAdminDepartmentAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_access_device_access",
            "groupAdminAccessDeviceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_enhanced_service_instance_access",
            "groupAdminEnhancedServiceInstanceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_feature_access_code_access",
            "groupAdminFeatureAccessCodeAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_phone_number_extension_access",
            "groupAdminPhoneNumberExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_calling_line_id_number_access",
            "groupAdminCallingLineIdNumberAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_service_access",
            "groupAdminServiceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_trunk_group_access",
            "groupAdminTrunkGroupAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_verify_translation_and_routing_access",
            "groupAdminVerifyTranslationAndRoutingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_session_admission_control_access",
            "groupAdminSessionAdmissionControlAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_dialable_caller_id_access",
            "groupAdminDialableCallerIDAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_office_zone_access",
            "groupAdminOfficeZoneAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_number_activation_access",
            "groupAdminNumberActivationAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_admin_communication_barring_user_profile_access",
            "groupAdminCommunicationBarringUserProfileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_profile_access",
            "serviceProviderAdminProfileAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_group_access",
            "serviceProviderAdminGroupAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_user_access",
            "serviceProviderAdminUserAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_admin_access",
            "serviceProviderAdminAdminAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_department_access",
            "ServiceProviderAdminDepartmentAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_access_device_access",
            "serviceProviderAdminAccessDeviceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_phone_number_extension_access",
            "serviceProviderAdminPhoneNumberExtensionAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_calling_line_id_number_access",
            "serviceProviderAdminCallingLineIdNumberAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_service_access",
            "serviceProviderAdminServiceAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_service_pack_access",
            "serviceProviderAdminServicePackAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_session_admission_control_access",
            "serviceProviderAdminSessionAdmissionControlAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_verify_translation_and_routing_access",
            "serviceProviderAdminVerifyTranslationAndRoutingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_web_branding_access",
            "serviceProviderAdminWebBrandingAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_office_zone_access",
            "serviceProviderAdminOfficeZoneAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_communication_barring_access",
            "serviceProviderAdminCommunicationBarringAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_admin_network_policy_access",
            "enterpriseAdminNetworkPolicyAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_admin_dialable_caller_id_access",
            "serviceProviderAdminDialableCallerIDAccess",
            str,
            False,
            False,
            False,
        ),
        E(
            "enterprise_admin_number_activation_access",
            "enterpriseAdminNumberActivationAccess",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* groupCallingPlanAccess
    group_calling_plan_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupExtensionAccess
    group_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupLDAPIntegrationAccess
    group_ldap_integration_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupVoiceMessagingAccess
    group_voice_messaging_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupDepartmentAdminUserAccess
    group_department_admin_user_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupDepartmentAdminTrunkGroupAccess
    group_department_admin_trunk_group_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupDepartmentAdminPhoneNumberExtensionAccess
    group_department_admin_phone_number_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupDepartmentAdminCallingLineIdNumberAccess
    group_department_admin_calling_line_id_number_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupUserAuthenticationAccess
    group_user_authentication_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupUserGroupDirectoryAccess
    group_user_group_directory_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupUserProfileAccess
    group_user_profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupUserEnhancedCallLogsAccess
    group_user_enhanced_call_logs_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupUserAutoAttendantNameDialingAccess
    group_user_auto_attendant_name_dialing_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminProfileAccess
    group_admin_profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminUserAccess
    group_admin_user_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminAdminAccess
    group_admin_admin_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminDepartmentAccess
    group_admin_department_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminAccessDeviceAccess
    group_admin_access_device_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminEnhancedServiceInstanceAccess
    group_admin_enhanced_service_instance_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminFeatureAccessCodeAccess
    group_admin_feature_access_code_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminPhoneNumberExtensionAccess
    group_admin_phone_number_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminCallingLineIdNumberAccess
    group_admin_calling_line_id_number_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminServiceAccess
    group_admin_service_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminTrunkGroupAccess
    group_admin_trunk_group_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminVerifyTranslationAndRoutingAccess
    group_admin_verify_translation_and_routing_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminSessionAdmissionControlAccess
    group_admin_session_admission_control_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminDialableCallerIDAccess
    group_admin_dialable_caller_id_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminOfficeZoneAccess
    group_admin_office_zone_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminNumberActivationAccess
    group_admin_number_activation_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupAdminCommunicationBarringUserProfileAccess
    group_admin_communication_barring_user_profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminProfileAccess
    service_provider_admin_profile_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminGroupAccess
    service_provider_admin_group_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminUserAccess
    service_provider_admin_user_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminAdminAccess
    service_provider_admin_admin_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* ServiceProviderAdminDepartmentAccess
    service_provider_admin_department_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminAccessDeviceAccess
    service_provider_admin_access_device_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminPhoneNumberExtensionAccess
    service_provider_admin_phone_number_extension_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminCallingLineIdNumberAccess
    service_provider_admin_calling_line_id_number_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminServiceAccess
    service_provider_admin_service_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminServicePackAccess
    service_provider_admin_service_pack_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminSessionAdmissionControlAccess
    service_provider_admin_session_admission_control_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminVerifyTranslationAndRoutingAccess
    service_provider_admin_verify_translation_and_routing_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminWebBrandingAccess
    service_provider_admin_web_branding_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminOfficeZoneAccess
    service_provider_admin_office_zone_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminCommunicationBarringAccess
    service_provider_admin_communication_barring_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseAdminNetworkPolicyAccess
    enterprise_admin_network_policy_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderAdminDialableCallerIDAccess
    service_provider_admin_dialable_caller_id_access = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* enterpriseAdminNumberActivationAccess
    enterprise_admin_number_activation_access = Field(
        type=str,
        required=False,
    )


class SystemPortalAPIAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the Portal API access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemPortalAPIDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the Portal API access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "disallow_repeated_digits",
            "disallowRepeatedDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_repeated_digits",
            "numberOfRepeatedDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_repeated_patterns",
            "disallowRepeatedPatterns",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_contiguous_sequences",
            "disallowContiguousSequences",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_ascending_digits",
            "numberOfAscendingDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "number_of_descending_digits",
            "numberOfDescendingDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_number",
            "disallowUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_user_number",
            "disallowReversedUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_passcode",
            "disallowOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_previous_passcodes",
            "numberOfPreviousPasscodes",
            int,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_passcode",
            "disallowReversedOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_code_length",
            "minCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_code_length",
            "maxCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "expire_password",
            "expirePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "passcode_expires_days",
            "passcodeExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_password",
            "defaultPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* disallowRepeatedDigits
    disallow_repeated_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfRepeatedDigits
    number_of_repeated_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowRepeatedPatterns
    disallow_repeated_patterns = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowContiguousSequences
    disallow_contiguous_sequences = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfAscendingDigits
    number_of_ascending_digits = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* numberOfDescendingDigits
    number_of_descending_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowUserNumber
    disallow_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedUserNumber
    disallow_reversed_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPasscode
    disallow_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfPreviousPasscodes
    number_of_previous_passcodes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPasscode
    disallow_reversed_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minCodeLength
    min_code_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCodeLength
    max_code_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableLoginAfterMaxFailedLoginAttempts
    disable_login_after_max_failed_login_attempts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* expirePassword
    expire_password = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* passcodeExpiresDays
    passcode_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultPassword
    default_password = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "carrier",
            "carrier",
            str,
            False,
            True,
            False,
        ),
        E(
            "cic",
            "cic",
            str,
            False,
            True,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_intra_lata",
            "isIntraLata",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_inter_lata",
            "isInterLata",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_international",
            "isInternational",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* carrier
    carrier = Field(
        type=str,
        required=True,
    )
    #: str: *Required* cic
    cic = Field(
        type=str,
        required=True,
    )
    #: str: *Required* countryCode
    country_code = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isIntraLata
    is_intra_lata = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isInterLata
    is_inter_lata = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isInternational
    is_international = Field(
        type=bool,
        required=True,
    )


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..
    """

    _ELEMENTS = (
        E(
            "carrier",
            "carrier",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* carrier
    carrier = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "carrier",
            "carrier",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* carrier
    carrier = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "carrier",
            "carrier",
            str,
            False,
            True,
            False,
        ),
        E(
            "cic",
            "cic",
            str,
            False,
            False,
            False,
        ),
        E(
            "country_code",
            "countryCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_intra_lata",
            "isIntraLata",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_inter_lata",
            "isInterLata",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_international",
            "isInternational",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* carrier
    carrier = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* cic
    cic = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* countryCode
    country_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isIntraLata
    is_intra_lata = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isInterLata
    is_inter_lata = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isInternational
    is_international = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_network_server_query_active",
            "isNetworkServerQueryActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isNetworkServerQueryActive
    is_network_server_query_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "roll_back_timer_minutes",
            "rollBackTimerMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_sip_option_message_upon_migration",
            "sendSipOptionMessageUponMigration",
            bool,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* rollBackTimerMinutes
    roll_back_timer_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendSipOptionMessageUponMigration
    send_sip_option_message_upon_migration = Field(
        type=bool,
        required=False,
    )


class SystemRoamingNetworkAddRequest(OCIRequest):
    """
    Add a Roaming Network.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "msc_address",
            "mscAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_translation_index",
            "networkTranslationIndex",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* mscAddress
    msc_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkTranslationIndex
    network_translation_index = Field(
        type=str,
        required=False,
    )


class SystemRoamingNetworkDeleteRequest(OCIRequest):
    """
    Delete a Roaming Network.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "msc_address",
            "mscAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* mscAddress
    msc_address = Field(
        type=str,
        required=True,
    )


class SystemRoamingNetworkModifyRequest(OCIRequest):
    """
    Modify a Roaming Network.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "msc_address",
            "mscAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_translation_index",
            "networkTranslationIndex",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* mscAddress
    msc_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkTranslationIndex
    network_translation_index = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemRoutePointExternalSystemApplicationControllerAddListRequest(OCIRequest):
    """
    Add an application controller to Route Point External System.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_controller",
            "applicationController",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* applicationController
    application_controller = Field(
        type=str,
        required=False,
    )


class SystemRoutePointExternalSystemApplicationControllerDeleteListRequest(OCIRequest):
    """
    Delete an application controller for Route Point External System.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_controller",
            "applicationController",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* applicationController
    application_controller = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "external_system",
            "externalSystem",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* externalSystem
    external_system = Field(
        type=str,
        required=True,
    )


class SystemRoutePointExternalSystemDeleteRequest(OCIRequest):
    """
    Delete an Route Point External System.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "route_point_external_system",
            "routePointExternalSystem",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* routePointExternalSystem
    route_point_external_system = Field(
        type=str,
        required=True,
    )


class SystemRoutePointExternalSystemModifyRequest(OCIRequest):
    """
    Modify an Route Point External System.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemRoutingAddRouteDeviceRequest14(OCIRequest):
    """
    Request to add a routing device to a route.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Required* transportProtocol
    transport_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemRoutingAddRouteRequest(OCIRequest):
    """
    Request to add a route to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )


class SystemRoutingAddTranslationRequest(OCIRequest):
    """
    Request to add a digit routing table entry to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "digits",
            "digits",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* digits
    digits = Field(
        type=str,
        required=True,
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )


class SystemRoutingDeleteRouteDeviceRequest(OCIRequest):
    """
    Request to delete a routing device from a route.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )


class SystemRoutingDeleteRouteRequest(OCIRequest):
    """
    Request to delete a route from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )


class SystemRoutingDeleteTranslationRequest(OCIRequest):
    """
    Request to delete a digit routing table entry from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "digits",
            "digits",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* digits
    digits = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "is_route_round_robin",
            "isRouteRoundRobin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_timer_seconds",
            "routeTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "dns_resolved_address_selection_policy",
            "dnsResolvedAddressSelectionPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_expiration_minutes",
            "statefulExpirationMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_addresses_per_hostname",
            "maxAddressesPerHostname",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_addresses_during_setup",
            "maxAddressesDuringSetup",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isRouteRoundRobin
    is_route_round_robin = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* routeTimerSeconds
    route_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* dnsResolvedAddressSelectionPolicy
    dns_resolved_address_selection_policy = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* statefulExpirationMinutes
    stateful_expiration_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxAddressesPerHostname
    max_addresses_per_hostname = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxAddressesDuringSetup
    max_addresses_during_setup = Field(
        type=int,
        required=False,
    )


class SystemRoutingModifyRouteDeviceRequest(OCIRequest):
    """
    Request to modify a routing device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_name",
            "routeName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* routeName
    route_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemRoutingModifyTranslationRequest(OCIRequest):
    """
    Request to modify a digit routing table entry in the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "digits",
            "digits",
            str,
            False,
            True,
            False,
        ),
        E(
            "route_name",
            "routeName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* digits
    digits = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routeName
    route_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Required* transportProtocol
    transport_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSIPAddACLEntryRequest14sp2(OCIRequest):
    """
    Add an entry to the SIP access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Required* transportProtocol
    transport_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSIPAddContentTypeRequest(OCIRequest):
    """
    Add a content type for the SIP interface.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "content_type",
            "contentType",
            str,
            False,
            True,
            False,
        ),
        E(
            "interface",
            "interface",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* contentType
    content_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* interface
    interface = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "disallow_authentication_name",
            "disallowAuthenticationName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_password",
            "disallowOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_password",
            "disallowReversedOldPassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_digits",
            "restrictMinDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_digits",
            "minDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_upper_case_letters",
            "restrictMinUpperCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_upper_case_letters",
            "minUpperCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_lower_case_letters",
            "restrictMinLowerCaseLetters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_lower_case_letters",
            "minLowerCaseLetters",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_non_alphanumeric_characters",
            "minNonAlphanumericCharacters",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_length",
            "minLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_permanent_lockout_notification",
            "sendPermanentLockoutNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_authentication_lockout_type",
            "endpointAuthenticationLockoutType",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_temporary_lockout_threshold",
            "endpointTemporaryLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "endpoint_wait_algorithm",
            "endpointWaitAlgorithm",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_lockout_fixed_minutes",
            "endpointLockoutFixedMinutes",
            str,
            False,
            False,
            False,
        ),
        E(
            "endpoint_permanent_lockout_threshold",
            "endpointPermanentLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_authentication_lockout_type",
            "trunkGroupAuthenticationLockoutType",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_temporary_lockout_threshold",
            "trunkGroupTemporaryLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_wait_algorithm",
            "trunkGroupWaitAlgorithm",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_lockout_fixed_minutes",
            "trunkGroupLockoutFixedMinutes",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_permanent_lockout_threshold",
            "trunkGroupPermanentLockoutThreshold",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* disallowAuthenticationName
    disallow_authentication_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPassword
    disallow_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPassword
    disallow_reversed_old_password = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* restrictMinDigits
    restrict_min_digits = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minDigits
    min_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinUpperCaseLetters
    restrict_min_upper_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minUpperCaseLetters
    min_upper_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinLowerCaseLetters
    restrict_min_lower_case_letters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minLowerCaseLetters
    min_lower_case_letters = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* restrictMinNonAlphanumericCharacters
    restrict_min_non_alphanumeric_characters = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minNonAlphanumericCharacters
    min_non_alphanumeric_characters = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLength
    min_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendPermanentLockoutNotification
    send_permanent_lockout_notification = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* permanentLockoutNotifyEmailAddress
    permanent_lockout_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* endpointAuthenticationLockoutType
    endpoint_authentication_lockout_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* endpointTemporaryLockoutThreshold
    endpoint_temporary_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* endpointWaitAlgorithm
    endpoint_wait_algorithm = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* endpointLockoutFixedMinutes
    endpoint_lockout_fixed_minutes = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* endpointPermanentLockoutThreshold
    endpoint_permanent_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* trunkGroupAuthenticationLockoutType
    trunk_group_authentication_lockout_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* trunkGroupTemporaryLockoutThreshold
    trunk_group_temporary_lockout_threshold = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* trunkGroupWaitAlgorithm
    trunk_group_wait_algorithm = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupLockoutFixedMinutes
    trunk_group_lockout_fixed_minutes = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* trunkGroupPermanentLockoutThreshold
    trunk_group_permanent_lockout_threshold = Field(
        type=int,
        required=False,
    )


class SystemSIPDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the SIP access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


class SystemSIPDeleteACLEntryRequest14sp2(OCIRequest):
    """
    Delete an entry from the SIP access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


class SystemSIPDeleteContentTypeRequest(OCIRequest):
    """
    Delete a content type for the SIP interface.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "content_type",
            "contentType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* contentType
    content_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "extended_capture_on_upload_from_device",
            "extendedCaptureOnUploadFromDevice",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* extendedCaptureOnUploadFromDevice
    extended_capture_on_upload_from_device = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeDeleteRequest(OCIRequest):
    """
    Request to delete a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileDeleteRequest(OCIRequest):
    """
    Request to delete a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeFileDeleteRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileDeleteRequest14sp8(OCIRequest):
    """
    Request to delete a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileGetRequest(OCIRequest):
    """
    Request to get a sip device type file.
    The response is either ``SystemSIPDeviceTypeFileGetResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeFileGetRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileGetRequest14sp8(OCIRequest):
    """
    Request to get a sip device type file.
    The response is either ``SystemSIPDeviceTypeFileGetResponse14sp8()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileGetRequest16sp1(OCIRequest):
    """
    Replaced By ``SystemSIPDeviceTypeFileGetRequest18()``.
    Request to get a sip device type file.
    The response is either ``SystemSIPDeviceTypeFileGetResponse16sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileGetRequest18(OCIRequest):
    """
    Request to get a sip device type file.
    The response is either ``SystemSIPDeviceTypeFileGetResponse18()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileGetRequest19(OCIRequest):
    """
    Request to get a sip device type file.
    The response is either ``SystemSIPDeviceTypeFileGetResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeFileGetRequest20(OCIRequest):
    """
    Request to get a sip device type file.
    The response is either ``SystemSIPDeviceTypeFileGetResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest14sp1(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse14sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest14sp2(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse14sp2()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeGetRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest14sp3(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse14sp3()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeGetRequest14sp6()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest14sp6(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse14sp6()`` or ``ErrorResponse()``.
    Replaced By : ``SystemSIPDeviceTypeGetRequest15()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest15(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse15()`` or ``ErrorResponse()``.
    Replaced By : ``SystemSIPDeviceTypeGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest16(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse16()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest16sp1(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse16sp1()`` or ``ErrorResponse()``.

    Replaced By  ``SystemSIPDeviceTypeGetRequest17()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest17(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest18(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse18()`` or ``ErrorResponse()``.

    Replaced By ``SystemSIPDeviceTypeGetRequest19()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest18sp1(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse18sp1()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest19(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse19()`` or ``ErrorResponse()``.

    Replaced By ``SystemSIPDeviceTypeGetRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest19sp1(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse19sp1()`` or ``ErrorResponse()``.

    Replaced By ``SystemSIPDeviceTypeGetRequest20()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest20(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeGetRequest21(OCIRequest):
    """
    Request to get a sip device type.
    See Also: ``SystemDeviceTypeGetRequest()``
    The response is either ``SystemSIPDeviceTypeGetResponse21()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "supports_polycom_phone_services",
            "supportsPolycomPhoneServices",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* supportsPolycomPhoneServices
    supports_polycom_phone_services = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "diversion_reason",
            "diversionReason",
            str,
            False,
            True,
            False,
        ),
        E(
            "cause_value",
            "causeValue",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* diversionReason
    diversion_reason = Field(
        type=str,
        required=True,
    )
    #: str: *Required* causeValue
    cause_value = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSIPModifyACLEntryRequest14sp2(OCIRequest):
    """
    Modify an entry from the SIP access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSIPModifyContentTypeRequest(OCIRequest):
    """
    Modify an content type for the SIP interface.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "content_type",
            "contentType",
            str,
            False,
            True,
            False,
        ),
        E(
            "interface",
            "interface",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* contentType
    content_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* interface
    interface = Field(
        type=str,
        required=False,
    )


class SystemSMDIAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the SMDI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSMDIAddACLEntryRequest14sp2(OCIRequest):
    """
    Add an entry to the SMDI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSMDIDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the SMDI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


class SystemSMDIDeleteACLEntryRequest14sp2(OCIRequest):
    """
    Delete an entry from the SMDI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSMDIMessageDeskAddServerRouteRequest(OCIRequest):
    """
    Request to add a SMDI Server route to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_destination",
            "routeDestination",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* routeDestination
    route_destination = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemSMDIMessageDeskDeleteServerRequest(OCIRequest):
    """
    Request to delete a SMDI Server from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class SystemSMDIMessageDeskDeleteServerRouteRequest(OCIRequest):
    """
    Request to delete a SMDI Server route from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "route_destination",
            "routeDestination",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* routeDestination
    route_destination = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "route_destination",
            "routeDestination",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name_list",
            "deviceNameList",
            str,
            True,
            False,
            False,
        ),  # unknown
    )
    #: str: *Required* routeDestination
    route_destination = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* deviceNameList
    device_name_list = Field(
        type=str,
        required=False,
    )


class SystemSMDIModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry from the SMDI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemSMDIModifyACLEntryRequest14sp2(OCIRequest):
    """
    Modify an entry from the SMDI access control list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enable_smdi",
            "enableSMDI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "listening_port",
            "listeningPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_connections",
            "maxConnections",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enableSMDI
    enable_smdi = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* listeningPort
    listening_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxConnections
    max_connections = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "primary_smpp_server_net_address",
            "primarySMPPServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "primary_smpp_port",
            "primarySMPPPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "secondary_smpp_server_net_address",
            "secondarySMPPServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "secondary_smpp_port",
            "secondarySMPPPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "system_id",
            "systemId",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "version",
            "version",
            str,
            False,
            False,
            False,
        ),
        E(
            "system_type",
            "systemType",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_mwi_customized_message",
            "enableMWICustomizedMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_message_payload",
            "supportMessagePayload",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_short_message_length",
            "maxShortMessageLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_gsm_mwi_ucs2_encoding",
            "useGsmMwiUcs2Encoding",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* primarySMPPServerNetAddress
    primary_smpp_server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* primarySMPPPort
    primary_smpp_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* secondarySMPPServerNetAddress
    secondary_smpp_server_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* secondarySMPPPort
    secondary_smpp_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* systemId
    system_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* version
    version = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* systemType
    system_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableMWICustomizedMessage
    enable_mwi_customized_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportMessagePayload
    support_message_payload = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxShortMessageLength
    max_short_message_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useGsmMwiUcs2Encoding
    use_gsm_mwi_ucs2_encoding = Field(
        type=bool,
        required=False,
    )


class SystemScheduleAddRequest(OCIRequest):
    """
    Add a system schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "schedule_name",
            "scheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* scheduleName
    schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleType
    schedule_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* scheduleType
    schedule_type = Field(
        type=str,
        required=False,
    )


class SystemSecurityClassificationDeleteClassificationRequest(OCIRequest):
    """
    Delete a System Security Classification
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "security_classification_name",
            "securityClassificationName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* securityClassificationName
    security_classification_name = Field(
        type=str,
        required=True,
    )


class SystemSecurityClassificationGetClassificationRequest(OCIRequest):
    """
    Get a system Security Classification.
    The response is either ``SystemSecurityClassificationGetClassificationResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "security_classification_name",
            "securityClassificationName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* securityClassificationName
    security_classification_name = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "meet_me_annc_threshold",
            "meetMeAnncThreshold",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_trunk_user_security_classification_announcement",
            "playTrunkUserSecurityClassificationAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "security_classification_name",
            "securityClassificationName",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* meetMeAnncThreshold
    meet_me_annc_threshold = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playTrunkUserSecurityClassificationAnnouncement
    play_trunk_user_security_classification_announcement = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* securityClassificationName
    security_classification_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "schedule_combination",
            "scheduleCombination",
            str,
            False,
            False,
            False,
        ),
        E(
            "screen_private_number",
            "screenPrivateNumber",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* scheduleCombination
    schedule_combination = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* screenPrivateNumber
    screen_private_number = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "web_server_cluster_public_fqdn",
            "webServerClusterPublicFQDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "application_server_cluster_primary_public_fqdn",
            "applicationServerClusterPrimaryPublicFQDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "application_server_cluster_secondary_public_fqdn",
            "applicationServerClusterSecondaryPublicFQDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "application_server_cluster_primary_private_fqdn",
            "applicationServerClusterPrimaryPrivateFQDN",
            str,
            False,
            False,
            False,
        ),
        E(
            "application_server_cluster_secondary_private_fqdn",
            "applicationServerClusterSecondaryPrivateFQDN",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* webServerClusterPublicFQDN
    web_server_cluster_public_fqdn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* applicationServerClusterPrimaryPublicFQDN
    application_server_cluster_primary_public_fqdn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* applicationServerClusterSecondaryPublicFQDN
    application_server_cluster_secondary_public_fqdn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* applicationServerClusterPrimaryPrivateFQDN
    application_server_cluster_primary_private_fqdn = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* applicationServerClusterSecondaryPrivateFQDN
    application_server_cluster_secondary_private_fqdn = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "terminating_access_code",
            "terminatingAccessCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "redirecting_access_code",
            "redirectingAccessCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "click_to_dial_access_code",
            "clickToDialAccessCode",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* terminatingAccessCode
    terminating_access_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* redirectingAccessCode
    redirecting_access_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* clickToDialAccessCode
    click_to_dial_access_code = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_code",
            "serviceCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceCode
    service_code = Field(
        type=str,
        required=True,
    )
    #: str: *Required* description
    description = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_code",
            "serviceCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceCode
    service_code = Field(
        type=str,
        required=True,
    )


class SystemServiceCodeModifyRequest(OCIRequest):
    """
    Request to modify service code.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_code",
            "serviceCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceCode
    service_code = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "server_port",
            "serverPort",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_client_connections",
            "maxClientConnections",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* serverPort
    server_port = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxClientConnections
    max_client_connections = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "max_simultaneous_migration_tasks",
            "maxSimultaneousMigrationTasks",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxSimultaneousMigrationTasks
    max_simultaneous_migration_tasks = Field(
        type=int,
        required=False,
    )


class SystemServicePhoneNumberLookupRequest(OCIRequest):
    """
    Lookup if the given number is defined in the specified service in the system.
    The response is ``SystemServicePhoneNumberLookupResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_type",
            "serviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceType
    service_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "count_long_connections_to_media_server",
            "countLongConnectionsToMediaServer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sac_handling_for_mo_h",
            "sacHandlingForMoH",
            str,
            False,
            False,
            False,
        ),
        E(
            "block_vm_deposit_due_to_sac_limits",
            "blockVMDepositDueToSACLimits",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* countLongConnectionsToMediaServer
    count_long_connections_to_media_server = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sacHandlingForMoH
    sac_handling_for_mo_h = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* blockVMDepositDueToSACLimits
    block_vm_deposit_due_to_sac_limits = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "interval_seconds",
            "intervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "timeout_period_seconds",
            "timeoutPeriodSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* intervalSeconds
    interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* timeoutPeriodSeconds
    timeout_period_seconds = Field(
        type=int,
        required=False,
    )


class SystemSessionAuditModifyRequest14sp3(OCIRequest):
    """
    Modify the system level data associated with session audit.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "is_audit_active",
            "isAuditActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audit_interval_seconds",
            "auditIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "audit_timeout_seconds",
            "auditTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "release_call_on_audit_failure",
            "releaseCallOnAuditFailure",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_sip_refresh_allowed_on_audit",
            "isSIPRefreshAllowedOnAudit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_update_for_sip_refresh",
            "allowUpdateForSIPRefresh",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_sip_session_timer_active",
            "isSIPSessionTimerActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_session_expires_minimum_seconds",
            "sipSessionExpiresMinimumSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enforce_sip_session_expires_maximum",
            "enforceSIPSessionExpiresMaximum",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_session_expires_maximum_seconds",
            "sipSessionExpiresMaximumSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "sip_session_expires_timer_seconds",
            "sipSessionExpiresTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "always_use_session_timer_when_supported",
            "alwaysUseSessionTimerWhenSupported",
            bool,
            False,
            False,
            False,
        ),
        E(
            "preferred_session_timer_refresher",
            "preferredSessionTimerRefresher",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_emergency_call_alarm_timer",
            "enableEmergencyCallAlarmTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "emergency_call_alarm_minutes",
            "emergencyCallAlarmMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_emergency_call_cleanup_timer",
            "enableEmergencyCallCleanupTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "emergency_call_cleanup_minutes",
            "emergencyCallCleanupMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isAuditActive
    is_audit_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* auditIntervalSeconds
    audit_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* auditTimeoutSeconds
    audit_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* releaseCallOnAuditFailure
    release_call_on_audit_failure = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isSIPRefreshAllowedOnAudit
    is_sip_refresh_allowed_on_audit = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUpdateForSIPRefresh
    allow_update_for_sip_refresh = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isSIPSessionTimerActive
    is_sip_session_timer_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* sipSessionExpiresMinimumSeconds
    sip_session_expires_minimum_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enforceSIPSessionExpiresMaximum
    enforce_sip_session_expires_maximum = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* sipSessionExpiresMaximumSeconds
    sip_session_expires_maximum_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* sipSessionExpiresTimerSeconds
    sip_session_expires_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* alwaysUseSessionTimerWhenSupported
    always_use_session_timer_when_supported = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* preferredSessionTimerRefresher
    preferred_session_timer_refresher = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableEmergencyCallAlarmTimer
    enable_emergency_call_alarm_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* emergencyCallAlarmMinutes
    emergency_call_alarm_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableEmergencyCallCleanupTimer
    enable_emergency_call_cleanup_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* emergencyCallCleanupMinutes
    emergency_call_cleanup_minutes = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "hss_realm",
            "hssRealm",
            str,
            False,
            False,
            False,
        ),
        E(
            "request_timeout_seconds",
            "requestTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "public_identity_refresh_delay_seconds",
            "publicIdentityRefreshDelaySeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* hssRealm
    hss_realm = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* requestTimeoutSeconds
    request_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* publicIdentityRefreshDelaySeconds
    public_identity_refresh_delay_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "hss_realm",
            "hssRealm",
            str,
            False,
            False,
            False,
        ),
        E(
            "public_identity_refresh_delay_seconds",
            "publicIdentityRefreshDelaySeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* hssRealm
    hss_realm = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* publicIdentityRefreshDelaySeconds
    public_identity_refresh_delay_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_calling_line_id_selection",
            "userCallingLineIdSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_extended_calling_line_id_active",
            "isExtendedCallingLineIdActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_ring_time_out_active",
            "isRingTimeOutActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ring_timeout_seconds",
            "ringTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_emergency_remote_office_originations",
            "allowEmergencyRemoteOfficeOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_no_answer_number_of_rings",
            "maxNoAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* userCallingLineIdSelection
    user_calling_line_id_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isExtendedCallingLineIdActive
    is_extended_calling_line_id_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isRingTimeOutActive
    is_ring_time_out_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ringTimeoutSeconds
    ring_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowEmergencyRemoteOfficeOriginations
    allow_emergency_remote_office_originations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxNoAnswerNumberOfRings
    max_no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )


class SystemSubscriberModifyCallProcessingParametersRequest14sp7(OCIRequest):
    """
    Modify the system call processing configuration for all subscribers.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "is_extended_calling_line_id_active",
            "isExtendedCallingLineIdActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_ring_time_out_active",
            "isRingTimeOutActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ring_timeout_seconds",
            "ringTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_emergency_remote_office_originations",
            "allowEmergencyRemoteOfficeOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_no_answer_number_of_rings",
            "maxNoAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_call_to_user_alias_mode",
            "incomingCallToUserAliasMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "bypass_termination_loop_detection",
            "bypassTerminationLoopDetection",
            bool,
            False,
            False,
            False,
        ),
        E(
            "honor_clid_blocking_for_emergency_calls",
            "honorCLIDBlockingForEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_unicode_identity_name",
            "useUnicodeIdentityName",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* isExtendedCallingLineIdActive
    is_extended_calling_line_id_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isRingTimeOutActive
    is_ring_time_out_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ringTimeoutSeconds
    ring_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowEmergencyRemoteOfficeOriginations
    allow_emergency_remote_office_originations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxNoAnswerNumberOfRings
    max_no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* incomingCallToUserAliasMode
    incoming_call_to_user_alias_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* bypassTerminationLoopDetection
    bypass_termination_loop_detection = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* honorCLIDBlockingForEmergencyCalls
    honor_clid_blocking_for_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useUnicodeIdentityName
    use_unicode_identity_name = Field(
        type=bool,
        required=False,
    )


class SystemSubscriberModifyLoginParametersRequest(OCIRequest):
    """
    Modify the system login configuration for all subscribers
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "min_login_id_length",
            "minLoginIdLength",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* minLoginIdLength
    min_login_id_length = Field(
        type=int,
        required=False,
    )


class SystemSubscriberModifyProvisioningParametersRequest(OCIRequest):
    """
    Modify the system provisioning configuration for all subscribers.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "configurable_clid_normalization",
            "configurableCLIDNormalization",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* configurableCLIDNormalization
    configurable_clid_normalization = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "system_voice_portal_id",
            "systemVoicePortalId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* systemVoicePortalId
    system_voice_portal_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "system_voice_portal_id",
            "systemVoicePortalId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* systemVoicePortalId
    system_voice_portal_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_net_address",
            "serviceNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_port",
            "servicePort",
            int,
            False,
            False,
            False,
        ),
        E(
            "bosh_url",
            "boshURL",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* serviceNetAddress
    service_net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* servicePort
    service_port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* boshURL
    bosh_url = Field(
        type=str,
        required=False,
    )


class SystemThirdPartyVoiceMailSupportAddDnRequest(OCIRequest):
    """
    Request to add a ThirdPartyVoiceMailSupport User DN to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemThirdPartyVoiceMailSupportDeleteDnRequest(OCIRequest):
    """
    Request to delete a ThirdPartyVoiceMailSupport User DN from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "override_alt_caller_id_for_vm_retrieval",
            "overrideAltCallerIdForVMRetrieval",
            bool,
            False,
            False,
            False,
        ),
        E(
            "strip_diversion_on_vm_destination_retrieval",
            "stripDiversionOnVMDestinationRetrieval",
            bool,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* overrideAltCallerIdForVMRetrieval
    override_alt_caller_id_for_vm_retrieval = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* stripDiversionOnVMDestinationRetrieval
    strip_diversion_on_vm_destination_retrieval = Field(
        type=bool,
        required=False,
    )


class SystemTimeScheduleDeleteRequest(OCIRequest):
    """
    Delete a system time schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "sip_status_code",
            "sipStatusCode",
            int,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* sipStatusCode
    sip_status_code = Field(
        type=int,
        required=True,
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemTreatmentMappingAccessSIPStatusDeleteRequest(OCIRequest):
    """
    Delete an Access SIP Status Code mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "sip_status_code",
            "sipStatusCode",
            int,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* sipStatusCode
    sip_status_code = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "sip_status_code",
            "sipStatusCode",
            int,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Required* sipStatusCode
    sip_status_code = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=False,
    )


class SystemTreatmentMappingCallBlockingServiceAddRequest(OCIRequest):
    """
    Add a Call Blocking Service mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "call_blocking_service",
            "callBlockingService",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callBlockingService
    call_blocking_service = Field(
        type=str,
        required=True,
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemTreatmentMappingCallBlockingServiceDeleteRequest(OCIRequest):
    """
    Delete a Call Blocking Service mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "call_blocking_service",
            "callBlockingService",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* callBlockingService
    call_blocking_service = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "call_blocking_service",
            "callBlockingService",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* callBlockingService
    call_blocking_service = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=False,
    )


class SystemTreatmentMappingInternalReleaseCauseAddRequest(OCIRequest):
    """
    Add an Internal Release Cause mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "internal_release_cause",
            "internalReleaseCause",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* internalReleaseCause
    internal_release_cause = Field(
        type=str,
        required=True,
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemTreatmentMappingInternalReleaseCauseDeleteRequest(OCIRequest):
    """
    Delete an Internal Release Cause mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "internal_release_cause",
            "internalReleaseCause",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* internalReleaseCause
    internal_release_cause = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "internal_release_cause",
            "internalReleaseCause",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* internalReleaseCause
    internal_release_cause = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=False,
    )


class SystemTreatmentMappingNetworkSIPStatusAddRequest(OCIRequest):
    """
    Add a Network SIP Status Code mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "sip_status_code",
            "sipStatusCode",
            int,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* sipStatusCode
    sip_status_code = Field(
        type=int,
        required=True,
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemTreatmentMappingNetworkSIPStatusDeleteRequest(OCIRequest):
    """
    Delete a Network SIP Status Code mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "sip_status_code",
            "sipStatusCode",
            int,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* sipStatusCode
    sip_status_code = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "sip_status_code",
            "sipStatusCode",
            int,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Required* sipStatusCode
    sip_status_code = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=False,
    )


class SystemTreatmentMappingNetworkServerTreatmentAddRequest(OCIRequest):
    """
    Add a Network Server Treatment mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "ns_treatment",
            "nsTreatment",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* nsTreatment
    ns_treatment = Field(
        type=str,
        required=True,
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemTreatmentMappingNetworkServerTreatmentDeleteRequest(OCIRequest):
    """
    Delete a NS Treatment mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "ns_treatment",
            "nsTreatment",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* nsTreatment
    ns_treatment = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "ns_treatment",
            "nsTreatment",
            str,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* nsTreatment
    ns_treatment = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=False,
    )


class SystemTreatmentMappingQ850CauseAddRequest(OCIRequest):
    """
    Add a Q850 Cause Value mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "q850_cause_value",
            "q850CauseValue",
            int,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* q850CauseValue
    q850_cause_value = Field(
        type=int,
        required=True,
    )
    #: str: *Required* treatmentId
    treatment_id = Field(
        type=str,
        required=True,
    )


class SystemTreatmentMappingQ850CauseDeleteRequest(OCIRequest):
    """
    Delete a Q850 Cause Value mapping.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "q850_cause_value",
            "q850CauseValue",
            int,
            False,
            True,
            False,
        ),
    )
    #: int: *Required* q850CauseValue
    q850_cause_value = Field(
        type=int,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "q850_cause_value",
            "q850CauseValue",
            int,
            False,
            True,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Required* q850CauseValue
    q850_cause_value = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enforce_clid_service_assignment_for_pilot_user",
            "enforceCLIDServiceAssignmentForPilotUser",
            bool,
            False,
            False,
            False,
        ),
        E(
            "terminate_unreachable_trigger_detection_on_receipt_of18x",
            "terminateUnreachableTriggerDetectionOnReceiptOf18x",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_out_of_dialog_pbx_redirection_policies",
            "enforceOutOfDialogPBXRedirectionPolicies",
            bool,
            False,
            False,
            False,
        ),
        E(
            "unscreened_redirection_handling",
            "unscreenedRedirectionHandling",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_holdover_of_highwater_call_counts",
            "enableHoldoverOfHighwaterCallCounts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "holdover_period",
            "holdoverPeriod",
            int,
            False,
            False,
            False,
        ),
        E(
            "time_zone_offset_minutes",
            "timeZoneOffsetMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_source_for_screened_calls_policy",
            "clidSourceForScreenedCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_lookup_policy",
            "userLookupPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "out_of_dialog_pbx_redirection_clid_mapping",
            "outOfDialogPBXRedirectionCLIDMapping",
            str,
            False,
            False,
            False,
        ),
        E(
            "enforce_out_of_dialog_pbx_redirection_trunk_group_capacity",
            "enforceOutOfDialogPBXRedirectionTrunkGroupCapacity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_connected_identity_policy",
            "supportConnectedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* enforceCLIDServiceAssignmentForPilotUser
    enforce_clid_service_assignment_for_pilot_user = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* terminateUnreachableTriggerDetectionOnReceiptOf18x
    terminate_unreachable_trigger_detection_on_receipt_of18x = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceOutOfDialogPBXRedirectionPolicies
    enforce_out_of_dialog_pbx_redirection_policies = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* unscreenedRedirectionHandling
    unscreened_redirection_handling = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableHoldoverOfHighwaterCallCounts
    enable_holdover_of_highwater_call_counts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* holdoverPeriod
    holdover_period = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* timeZoneOffsetMinutes
    time_zone_offset_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidSourceForScreenedCallsPolicy
    clid_source_for_screened_calls_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userLookupPolicy
    user_lookup_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* outOfDialogPBXRedirectionCLIDMapping
    out_of_dialog_pbx_redirection_clid_mapping = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enforceOutOfDialogPBXRedirectionTrunkGroupCapacity
    enforce_out_of_dialog_pbx_redirection_trunk_group_capacity = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* implicitRegistrationSetSupportPolicy
    implicit_registration_set_support_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipIdentityForPilotAndProxyTrunkModesPolicy
    sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportConnectedIdentityPolicy
    support_connected_identity_policy = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "status_code",
            "statusCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* statusCode
    status_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "status_code",
            "statusCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* statusCode
    status_code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemTwoStageDialingDeleteDnRequest(OCIRequest):
    """
    Request to delete a Two Stage Dialing number from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemVideoServerAddRequest(OCIRequest):
    """
    Request to add a video server to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Required* transportProtocol
    transport_protocol = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class SystemVideoServerDeleteRequest(OCIRequest):
    """
    Request to delete a video server from the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "video_server_response_timer_milliseconds",
            "videoServerResponseTimerMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "video_server_selection_route_timer_milliseconds",
            "videoServerSelectionRouteTimerMilliseconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_static_video_server_device",
            "useStaticVideoServerDevice",
            bool,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* videoServerResponseTimerMilliseconds
    video_server_response_timer_milliseconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* videoServerSelectionRouteTimerMilliseconds
    video_server_selection_route_timer_milliseconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useStaticVideoServerDevice
    use_static_video_server_device = Field(
        type=bool,
        required=False,
    )


class SystemVirtualOnNetCallTypeAddRequest(OCIRequest):
    """
    Add a Virtual On-Net Call Type.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "virtual_on_net_call_type_name",
            "virtualOnNetCallTypeName",
            str,
            False,
            True,
            False,
        ),
        E(
            "virtual_on_net_call_type_cdr_value",
            "virtualOnNetCallTypeCdrValue",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* virtualOnNetCallTypeName
    virtual_on_net_call_type_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* virtualOnNetCallTypeCdrValue
    virtual_on_net_call_type_cdr_value = Field(
        type=str,
        required=True,
    )


class SystemVirtualOnNetCallTypeDeleteRequest(OCIRequest):
    """
    Delete a Virtual On-Net Call Type.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "virtual_on_net_call_type_name",
            "virtualOnNetCallTypeName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* virtualOnNetCallTypeName
    virtual_on_net_call_type_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "virtual_on_net_call_type_name",
            "virtualOnNetCallTypeName",
            str,
            False,
            True,
            False,
        ),
        E(
            "virtual_on_net_call_type_cdr_value",
            "virtualOnNetCallTypeCdrValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* virtualOnNetCallTypeName
    virtual_on_net_call_type_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* virtualOnNetCallTypeCdrValue
    virtual_on_net_call_type_cdr_value = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "send_saved_and_urgent_mwi_on_notification",
            "sendSavedAndUrgentMWIOnNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "send_message_summary_update_on_register",
            "sendMessageSummaryUpdateOnRegister",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_time_between_mwi_on_register",
            "minTimeBetweenMWIOnRegister",
            int,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* sendSavedAndUrgentMWIOnNotification
    send_saved_and_urgent_mwi_on_notification = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* sendMessageSummaryUpdateOnRegister
    send_message_summary_update_on_register = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minTimeBetweenMWIOnRegister
    min_time_between_mwi_on_register = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest18(OCIRequest):
    """
    Requests the system voice portal Menus setting.
    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse18()``
    or ``ErrorResponse()``.

    Replaced by ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest19()``
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest18sp1(OCIRequest):
    """
    Requests the system voice portal Menus setting.
    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse18sp1()``
    or ``ErrorResponse()``.

    Replaced by ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest19(OCIRequest):
    """
    Requests the system voice portal Menus setting.
    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse19()``
    or ``ErrorResponse()``.

    Replaced by ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest19sp1(OCIRequest):
    """
    Requests the system voice portal Menus setting.
    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse19sp1()``
    or ``ErrorResponse()``.

    Replaced by ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest20()``
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest20(OCIRequest):
    """
    Requests the system voice portal Menus setting.
    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse20()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest21(OCIRequest):
    """
    Requests the system voice portal Menus setting.
    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse21()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "get_default_menu_keys",
            "getDefaultMenuKeys",
            bool,
            False,
            True,
            False,
        ),
    )
    #: bool: *Required* getDefaultMenuKeys
    get_default_menu_keys = Field(
        type=bool,
        required=True,
    )


class SystemVoiceMessagingGroupModifyPasscodeRulesRequest(OCIRequest):
    """
    Request to modify the system voice portal passcode rules setting.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemPortalPasscodeRulesModifyRequest()``
    """

    _ELEMENTS = (
        E(
            "disallow_repeated_digits",
            "disallowRepeatedDigits",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_user_number",
            "disallowUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_user_number",
            "disallowReversedUserNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_old_passcode",
            "disallowOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disallow_reversed_old_passcode",
            "disallowReversedOldPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "min_code_length",
            "minCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_code_length",
            "maxCodeLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_failed_login_attempts",
            "maxFailedLoginAttempts",
            int,
            False,
            False,
            False,
        ),
        E(
            "expire_password",
            "expirePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "passcode_expires_days",
            "passcodeExpiresDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "send_login_disabled_notify_email",
            "sendLoginDisabledNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "login_disabled_notify_email_address",
            "loginDisabledNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_password",
            "defaultPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* disallowRepeatedDigits
    disallow_repeated_digits = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowUserNumber
    disallow_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedUserNumber
    disallow_reversed_user_number = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowOldPasscode
    disallow_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disallowReversedOldPasscode
    disallow_reversed_old_passcode = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* minCodeLength
    min_code_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxCodeLength
    max_code_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableLoginAfterMaxFailedLoginAttempts
    disable_login_after_max_failed_login_attempts = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFailedLoginAttempts
    max_failed_login_attempts = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* expirePassword
    expire_password = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* passcodeExpiresDays
    passcode_expires_days = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* sendLoginDisabledNotifyEmail
    send_login_disabled_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* loginDisabledNotifyEmailAddress
    login_disabled_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultPassword
    default_password = Field(
        type=str,
        required=False,
    )


class SystemVoiceMessagingGroupModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Voice Messaging.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "real_delete_for_imap",
            "realDeleteForImap",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_dn_in_mail_body",
            "useDnInMailBody",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_short_subject_line",
            "useShortSubjectLine",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_greeting_length_minutes",
            "maxGreetingLengthMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_message_length_minutes",
            "maxMessageLengthMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_mailbox_length_minutes",
            "maxMailboxLengthMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "does_message_age",
            "doesMessageAge",
            bool,
            False,
            False,
            False,
        ),
        E(
            "hold_period_days",
            "holdPeriodDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "mail_server_net_address",
            "mailServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mail_server_protocol",
            "mailServerProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_delivery_from_address",
            "defaultDeliveryFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_notification_from_address",
            "defaultNotificationFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_voice_portal_lockout_from_address",
            "defaultVoicePortalLockoutFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_outgoing_mwi_on_smdi",
            "useOutgoingMWIOnSMDI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mwi_delay_in_seconds",
            "mwiDelayInSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_scope",
            "voicePortalScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_wide_messaging",
            "networkWideMessaging",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_external_routing",
            "useExternalRouting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_external_routing_address",
            "defaultExternalRoutingAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* realDeleteForImap
    real_delete_for_imap = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useDnInMailBody
    use_dn_in_mail_body = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useShortSubjectLine
    use_short_subject_line = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxGreetingLengthMinutes
    max_greeting_length_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMessageLengthMinutes
    max_message_length_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMailboxLengthMinutes
    max_mailbox_length_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* doesMessageAge
    does_message_age = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* holdPeriodDays
    hold_period_days = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mailServerNetAddress
    mail_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mailServerProtocol
    mail_server_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultDeliveryFromAddress
    default_delivery_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultNotificationFromAddress
    default_notification_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultVoicePortalLockoutFromAddress
    default_voice_portal_lockout_from_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useOutgoingMWIOnSMDI
    use_outgoing_mwi_on_smdi = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* mwiDelayInSeconds
    mwi_delay_in_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* voicePortalScope
    voice_portal_scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* networkWideMessaging
    network_wide_messaging = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useExternalRouting
    use_external_routing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultExternalRoutingAddress
    default_external_routing_address = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "real_delete_for_imap",
            "realDeleteForImap",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_dn_in_mail_body",
            "useDnInMailBody",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_short_subject_line",
            "useShortSubjectLine",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_message_length_minutes",
            "maxMessageLengthMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_mailbox_length_minutes",
            "maxMailboxLengthMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "does_message_age",
            "doesMessageAge",
            bool,
            False,
            False,
            False,
        ),
        E(
            "hold_period_days",
            "holdPeriodDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "mail_server_net_address",
            "mailServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mail_server_protocol",
            "mailServerProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_delivery_from_address",
            "defaultDeliveryFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_notification_from_address",
            "defaultNotificationFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_voice_portal_lockout_from_address",
            "defaultVoicePortalLockoutFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_outgoing_mwi_on_smdi",
            "useOutgoingMWIOnSMDI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mwi_delay_in_seconds",
            "mwiDelayInSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_scope",
            "voicePortalScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_wide_messaging",
            "networkWideMessaging",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_external_routing",
            "useExternalRouting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_external_routing_address",
            "defaultExternalRoutingAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "vm_only_system",
            "vmOnlySystem",
            bool,
            False,
            False,
            False,
        ),
        E(
            "client_initiated_mail_server_session_timeout_minutes",
            "clientInitiatedMailServerSessionTimeoutMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "recording_audio_file_format",
            "recordingAudioFileFormat",
            str,
            False,
            False,
            False,
        ),
    )
    #: bool: *Optional* realDeleteForImap
    real_delete_for_imap = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useDnInMailBody
    use_dn_in_mail_body = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useShortSubjectLine
    use_short_subject_line = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxMessageLengthMinutes
    max_message_length_minutes = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxMailboxLengthMinutes
    max_mailbox_length_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* doesMessageAge
    does_message_age = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* holdPeriodDays
    hold_period_days = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mailServerNetAddress
    mail_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mailServerProtocol
    mail_server_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultDeliveryFromAddress
    default_delivery_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultNotificationFromAddress
    default_notification_from_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultVoicePortalLockoutFromAddress
    default_voice_portal_lockout_from_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useOutgoingMWIOnSMDI
    use_outgoing_mwi_on_smdi = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* mwiDelayInSeconds
    mwi_delay_in_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* voicePortalScope
    voice_portal_scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* networkWideMessaging
    network_wide_messaging = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useExternalRouting
    use_external_routing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultExternalRoutingAddress
    default_external_routing_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* vmOnlySystem
    vm_only_system = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* clientInitiatedMailServerSessionTimeoutMinutes
    client_initiated_mail_server_session_timeout_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* recordingAudioFileFormat
    recording_audio_file_format = Field(
        type=str,
        required=False,
    )


class SystemVoiceMessagingGroupModifyVoicePortalMenusRequest(OCIRequest):
    """
    Request to modify the system voice portal menus setting.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "use_voice_portal_customization",
            "useVoicePortalCustomization",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_main_menu_keys",
            "voicePortalMainMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "voice_messaging_menu_keys",
            "voiceMessagingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "play_greeting_menu_keys",
            "playGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_busy_or_no_answer_greeting_menu_keys",
            "changeBusyOrNoAnswerGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_extended_away_greeting_menu_keys",
            "changeExtendedAwayGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "record_new_greeting_or_personalized_name_menu_keys",
            "recordNewGreetingOrPersonalizedNameMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "delete_all_messages_menu_keys",
            "deleteAllMessagesMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "comm_pilot_express_profile_menu_keys",
            "commPilotExpressProfileMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "personalized_name_menu_keys",
            "personalizedNameMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "call_forwarding_options_menu_keys",
            "callForwardingOptionsMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_call_forwarding_destination_menu_keys",
            "changeCallForwardingDestinationMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "voice_portal_calling_menu_keys",
            "voicePortalCallingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "hoteling_menu_keys",
            "hotelingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "passcode_menu_keys",
            "passcodeMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "play_messages_menu_keys",
            "playMessagesMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "play_message_menu_keys",
            "playMessageMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "additional_message_options_menu_keys",
            "additionalMessageOptionsMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "forward_or_compose_message_menu_keys",
            "forwardOrComposeMessageMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "reply_message_menu_keys",
            "replyMessageMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_to_distribution_list_menu_keys",
            "sendToDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "select_distribution_list_menu_keys",
            "selectDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "review_selected_distribution_list_menu_keys",
            "reviewSelectedDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_message_to_selected_distribution_list_menu_keys",
            "sendMessageToSelectedDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_to_all_group_members_menu_keys",
            "sendToAllGroupMembersMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_to_person_menu_keys",
            "sendToPersonMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_current_introduction_or_message_or_reply_menu_keys",
            "changeCurrentIntroductionOrMessageOrReplyMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "voice_portal_login_menu_keys",
            "voicePortalLoginMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "fax_messaging_menu_keys",
            "faxMessagingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "message_deposit_menu_keys",
            "messageDepositMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "disable_message_deposit_menu_keys",
            "disableMessageDepositMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "greeting_only_forwarding_destination_menu_keys",
            "greetingOnlyForwardingDestinationMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
    )
    #: bool: *Optional* useVoicePortalCustomization
    use_voice_portal_customization = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* voicePortalMainMenuKeys
    voice_portal_main_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voiceMessagingMenuKeys
    voice_messaging_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* playGreetingMenuKeys
    play_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeBusyOrNoAnswerGreetingMenuKeys
    change_busy_or_no_answer_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeExtendedAwayGreetingMenuKeys
    change_extended_away_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recordNewGreetingOrPersonalizedNameMenuKeys
    record_new_greeting_or_personalized_name_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deleteAllMessagesMenuKeys
    delete_all_messages_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* commPilotExpressProfileMenuKeys
    comm_pilot_express_profile_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* personalizedNameMenuKeys
    personalized_name_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingOptionsMenuKeys
    call_forwarding_options_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeCallForwardingDestinationMenuKeys
    change_call_forwarding_destination_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voicePortalCallingMenuKeys
    voice_portal_calling_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hotelingMenuKeys
    hoteling_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* passcodeMenuKeys
    passcode_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* playMessagesMenuKeys
    play_messages_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* playMessageMenuKeys
    play_message_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* additionalMessageOptionsMenuKeys
    additional_message_options_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* forwardOrComposeMessageMenuKeys
    forward_or_compose_message_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* replyMessageMenuKeys
    reply_message_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendToDistributionListMenuKeys
    send_to_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* selectDistributionListMenuKeys
    select_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reviewSelectedDistributionListMenuKeys
    review_selected_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendMessageToSelectedDistributionListMenuKeys
    send_message_to_selected_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendToAllGroupMembersMenuKeys
    send_to_all_group_members_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendToPersonMenuKeys
    send_to_person_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeCurrentIntroductionOrMessageOrReplyMenuKeys
    change_current_introduction_or_message_or_reply_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voicePortalLoginMenuKeys
    voice_portal_login_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* faxMessagingMenuKeys
    fax_messaging_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* messageDepositMenuKeys
    message_deposit_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* disableMessageDepositMenuKeys
    disable_message_deposit_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* greetingOnlyForwardingDestinationMenuKeys
    greeting_only_forwarding_destination_menu_keys = Field(
        type=str,
        required=False,
    )


class SystemVoiceMessagingGroupModifyVoicePortalMenusRequest19(OCIRequest):
    """
    Request to modify the system voice portal menus setting.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "use_voice_portal_customization",
            "useVoicePortalCustomization",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_main_menu_keys",
            "voicePortalMainMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "announcement_menu_keys",
            "announcementMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "announcement_recording_menu_keys",
            "announcementRecordingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "greetings_menu_keys",
            "greetingsMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "conference_greeting_menu_keys",
            "conferenceGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "voice_messaging_menu_keys",
            "voiceMessagingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "play_greeting_menu_keys",
            "playGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_busy_or_no_answer_greeting_menu_keys",
            "changeBusyOrNoAnswerGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_extended_away_greeting_menu_keys",
            "changeExtendedAwayGreetingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "record_new_greeting_or_personalized_name_menu_keys",
            "recordNewGreetingOrPersonalizedNameMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "delete_all_messages_menu_keys",
            "deleteAllMessagesMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "comm_pilot_express_profile_menu_keys",
            "commPilotExpressProfileMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "personalized_name_menu_keys",
            "personalizedNameMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "call_forwarding_options_menu_keys",
            "callForwardingOptionsMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_call_forwarding_destination_menu_keys",
            "changeCallForwardingDestinationMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "voice_portal_calling_menu_keys",
            "voicePortalCallingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "hoteling_menu_keys",
            "hotelingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "passcode_menu_keys",
            "passcodeMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "play_messages_menu_keys",
            "playMessagesMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "play_message_menu_keys",
            "playMessageMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "additional_message_options_menu_keys",
            "additionalMessageOptionsMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "forward_or_compose_message_menu_keys",
            "forwardOrComposeMessageMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "reply_message_menu_keys",
            "replyMessageMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_to_distribution_list_menu_keys",
            "sendToDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "select_distribution_list_menu_keys",
            "selectDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "review_selected_distribution_list_menu_keys",
            "reviewSelectedDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_message_to_selected_distribution_list_menu_keys",
            "sendMessageToSelectedDistributionListMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_to_all_group_members_menu_keys",
            "sendToAllGroupMembersMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "send_to_person_menu_keys",
            "sendToPersonMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "change_current_introduction_or_message_or_reply_menu_keys",
            "changeCurrentIntroductionOrMessageOrReplyMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "voice_portal_login_menu_keys",
            "voicePortalLoginMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "fax_messaging_menu_keys",
            "faxMessagingMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "message_deposit_menu_keys",
            "messageDepositMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "disable_message_deposit_menu_keys",
            "disableMessageDepositMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "greeting_only_forwarding_destination_menu_keys",
            "greetingOnlyForwardingDestinationMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "personal_assistant_menu_keys",
            "personalAssistantMenuKeys",
            str,
            True,
            False,
            False,
        ),  # unknown
    )
    #: bool: *Optional* useVoicePortalCustomization
    use_voice_portal_customization = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* voicePortalMainMenuKeys
    voice_portal_main_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* announcementMenuKeys
    announcement_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* announcementRecordingMenuKeys
    announcement_recording_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* greetingsMenuKeys
    greetings_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* conferenceGreetingMenuKeys
    conference_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voiceMessagingMenuKeys
    voice_messaging_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* playGreetingMenuKeys
    play_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeBusyOrNoAnswerGreetingMenuKeys
    change_busy_or_no_answer_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeExtendedAwayGreetingMenuKeys
    change_extended_away_greeting_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recordNewGreetingOrPersonalizedNameMenuKeys
    record_new_greeting_or_personalized_name_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deleteAllMessagesMenuKeys
    delete_all_messages_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* commPilotExpressProfileMenuKeys
    comm_pilot_express_profile_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* personalizedNameMenuKeys
    personalized_name_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingOptionsMenuKeys
    call_forwarding_options_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeCallForwardingDestinationMenuKeys
    change_call_forwarding_destination_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voicePortalCallingMenuKeys
    voice_portal_calling_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hotelingMenuKeys
    hoteling_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* passcodeMenuKeys
    passcode_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* playMessagesMenuKeys
    play_messages_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* playMessageMenuKeys
    play_message_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* additionalMessageOptionsMenuKeys
    additional_message_options_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* forwardOrComposeMessageMenuKeys
    forward_or_compose_message_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* replyMessageMenuKeys
    reply_message_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendToDistributionListMenuKeys
    send_to_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* selectDistributionListMenuKeys
    select_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reviewSelectedDistributionListMenuKeys
    review_selected_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendMessageToSelectedDistributionListMenuKeys
    send_message_to_selected_distribution_list_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendToAllGroupMembersMenuKeys
    send_to_all_group_members_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sendToPersonMenuKeys
    send_to_person_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* changeCurrentIntroductionOrMessageOrReplyMenuKeys
    change_current_introduction_or_message_or_reply_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voicePortalLoginMenuKeys
    voice_portal_login_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* faxMessagingMenuKeys
    fax_messaging_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* messageDepositMenuKeys
    message_deposit_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* disableMessageDepositMenuKeys
    disable_message_deposit_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* greetingOnlyForwardingDestinationMenuKeys
    greeting_only_forwarding_destination_menu_keys = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* personalAssistantMenuKeys
    personal_assistant_menu_keys = Field(
        type=str,
        required=False,
    )


class SystemZoneCallingRestrictionsZoneAddRequest(OCIRequest):
    """
    Add a zone.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``SystemZoneAddRequest()``
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )


class SystemZoneCallingRestrictionsZoneDeleteRequest(OCIRequest):
    """
    Deletes a zone from the system
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``SystemZoneDeleteRequest()``
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )


class SystemZoneCallingZonePhysicalLocationGetRequest(OCIRequest):
    """
    Returns a zone calling physical location for a given zone.
    Response is ``SystemZoneCallingZonePhysicalLocationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )


class SystemZoneCallingZonePhysicalLocationModifyRequest(OCIRequest):
    """
    Modifies a zone calling physical location for a given zone.
    Response is a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )


class SystemZoneDeleteRequest(OCIRequest):
    """
    Delete a Zone.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )


class SystemZoneLocationBasedPhysicalLocationDeleteListRequest(OCIRequest):
    """
    Deletes a list of physical addresses from a zone
    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )


class TutorialFlagGetRequest(OCIRequest):
    """
    Get the tutorial flag setting for a user or admin.
    The response is either a ``TutorialFlagGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class TutorialFlagModifyRequest(OCIRequest):
    """
    Modify the tutorial flag setting for a user or admin.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_tutorial",
            "enableTutorial",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableTutorial
    enable_tutorial = Field(
        type=bool,
        required=False,
    )


class UserAdviceOfChargeGetRequest(OCIRequest):
    """
    Request the user level data associated with Advice Of Charge.
    The response is either a ``UserAdviceOfChargeGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAdviceOfChargeModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Advice of Charge.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "aoc_type",
            "aocType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* aocType
    aoc_type = Field(
        type=str,
        required=False,
    )


class UserAlternateNumbersGetRequest(OCIRequest):
    """
    Request the user level data associated with Alternate Numbers.
    The response is either a ``UserAlternateNumbersGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAlternateNumbersGetRequest17(OCIRequest):
    """
    Request the user level data associated with Alternate Numbers.
    The response is either a ``UserAlternateNumbersGetResponse17()`` or an
    ``ErrorResponse()``.

    Replaced By ``UserAlternateNumbersGetRequest21()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAlternateNumbersGetRequest21(OCIRequest):
    """
    Request the user level data associated with alternate numbers.
    The response is either a ``UserAlternateNumbersGetResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_type",
            "announcementFileType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementFileType
    announcement_file_type = Field(
        type=str,
        required=False,
    )


class UserAnonymousCallRejectionGetRequest(OCIRequest):
    """
    Request the user level data associated with Anonymous Call Rejection.
    The response is either a ``UserAnonymousCallRejectionGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAnonymousCallRejectionModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Anonymous Call Rejection.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Optional* userId
    user_id = Field(
        type=str,
        required=False,
    )


class UserAttendantConsoleAddUserListRequest(OCIRequest):
    """
    Add users to the Attendant Console monitored users list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id",
            "monitoredUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* monitoredUserId
    monitored_user_id = Field(
        type=str,
        required=True,
    )


class UserAttendantConsoleDeleteUserListRequest(OCIRequest):
    """
    Remove users from the Attendant Console monitored users list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id",
            "monitoredUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* monitoredUserId
    monitored_user_id = Field(
        type=str,
        required=True,
    )


class UserAttendantConsoleGetRequest(OCIRequest):
    """
    Request user's attendant console settings.
    The response is either a ``UserAttendantConsoleGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAttendantConsoleGetRequest14sp2(OCIRequest):
    """
    Request user's attendant console settings.
    The response is either a ``UserAttendantConsoleGetResponse14sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAuthenticationGetRequest(OCIRequest):
    """
    Get the user's authentication service information.
    The response is either a ``UserAuthenticationGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAuthenticationModifyRequest(OCIRequest):
    """
    Modify the user's authentication service information.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_name",
            "userName",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            True,
            False,
            False,
        ),  # unknown
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userName
    user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* newPassword
    new_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )


class UserAutomaticCallbackGetRequest(OCIRequest):
    """
    Request the user level data associated with Automatic Callback.
    The response is either a ``UserAutomaticCallbackGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Automatic Callback.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserAutomaticHoldRetrieveGetRequest(OCIRequest):
    """
    Request the user level data associated with Automatic Hold/Retrieve.
    The response is either a ``UserAutomaticHoldRetrieveGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserAutomaticHoldRetrieveModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Automatic Hold/Retrieve.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "recall_timer_seconds",
            "recallTimerSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* recallTimerSeconds
    recall_timer_seconds = Field(
        type=int,
        required=False,
    )


class UserBargeInExemptGetRequest(OCIRequest):
    """
    Request the user level data associated with Barge In Exempt.
    The response is either a ``UserBargeInExemptGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBargeInExemptModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Barge In Exempt.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )


class UserBroadWorksAnywhereAddPhoneNumberRequest(OCIRequest):
    """
    Add a broadworks Anywhere phone number.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "outbound_alternate_number",
            "outboundAlternateNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "broadworks_call_control",
            "broadworksCallControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_diversion_inhibitor",
            "useDiversionInhibitor",
            bool,
            False,
            True,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* outboundAlternateNumber
    outbound_alternate_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* broadworksCallControl
    broadworks_call_control = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useDiversionInhibitor
    use_diversion_inhibitor = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserBroadWorksAnywhereDeleteSelectiveCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's BroadWorks Anywhere phone number.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksAnywhereGetPhoneNumberRequest(OCIRequest):
    """
    Get a broadworks anywhere phone number
    The response is ``UserBroadWorksAnywhereGetPhoneNumberResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksAnywhereGetSelectiveCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's BroadWorks Anywhere phone number.
    The response is either a ``UserBroadWorksAnywhereGetSelectiveCriteriaResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserBroadWorksAnywhereGetSelectiveCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's BroadWorks Anywhere phone number.
    The response is either a ``UserBroadWorksAnywhereGetSelectiveCriteriaResponse21()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alert_all_locations_for_click_to_dial_calls",
            "alertAllLocationsForClickToDialCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_all_locations_for_group_paging_calls",
            "alertAllLocationsForGroupPagingCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* alertAllLocationsForClickToDialCalls
    alert_all_locations_for_click_to_dial_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertAllLocationsForGroupPagingCalls
    alert_all_locations_for_group_paging_calls = Field(
        type=bool,
        required=False,
    )


class UserBroadWorksCommunicatorGetRequest(OCIRequest):
    """
    Request to get the Configuration Server for a specified user.
    The response is either a ``UserBroadWorksCommunicatorGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the user's broadworks mobility service settings.
    The response is either a ``UserBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksMobilityGetRequest21(OCIRequest):
    """
    Get the user's BroadWorks Mobility service settings.
    The response is either a ``UserBroadWorksMobilityGetResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_number",
            "mobileNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNumber
    mobile_number = Field(
        type=str,
        required=True,
    )


class UserBroadWorksMobilityMobileIdentityGetRequest(OCIRequest):
    """
    Get the settings for a user's specified mobile identity.
    The response is either a ``UserBroadWorksMobilityMobileIdentityGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_number",
            "mobileNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNumber
    mobile_number = Field(
        type=str,
        required=True,
    )


class UserBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the user's broadworks mobility service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "phones_to_ring",
            "phonesToRing",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "alert_click_to_dial_calls",
            "alertClickToDialCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_group_paging_calls",
            "alertGroupPagingCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_diversion_inhibitor",
            "enableDiversionInhibitor",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_answer_confirmation",
            "requireAnswerConfirmation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "broadworks_call_control",
            "broadworksCallControl",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* phonesToRing
    phones_to_ring = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* alertClickToDialCalls
    alert_click_to_dial_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertGroupPagingCalls
    alert_group_paging_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDiversionInhibitor
    enable_diversion_inhibitor = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireAnswerConfirmation
    require_answer_confirmation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* broadworksCallControl
    broadworks_call_control = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "phones_to_ring",
            "phonesToRing",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "alert_click_to_dial_calls",
            "alertClickToDialCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_group_paging_calls",
            "alertGroupPagingCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_diversion_inhibitor",
            "enableDiversionInhibitor",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_answer_confirmation",
            "requireAnswerConfirmation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "broadworks_call_control",
            "broadworksCallControl",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* phonesToRing
    phones_to_ring = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* alertClickToDialCalls
    alert_click_to_dial_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertGroupPagingCalls
    alert_group_paging_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDiversionInhibitor
    enable_diversion_inhibitor = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireAnswerConfirmation
    require_answer_confirmation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* broadworksCallControl
    broadworks_call_control = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )


class UserBroadWorksReceptionistEnterpriseAddUserListRequest(OCIRequest):
    """
    Add users to the BroadWorks Receptionist - Enterprise monitored user list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id",
            "monitoredUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* monitoredUserId
    monitored_user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksReceptionistEnterpriseDeleteUserListRequest(OCIRequest):
    """
    Remove selected users from the BroadWorks Receptionist - Enterprise monitored user list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id",
            "monitoredUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* monitoredUserId
    monitored_user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksReceptionistEnterpriseGetRequest(OCIRequest):
    """
    Request the monitored users list for the BroadWorks Receptionist - Enterprise service.
    The response is either a ``UserBroadWorksReceptionistEnterpriseGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksReceptionistOfficeGetRequest(OCIRequest):
    """
    Request the Receptionist Office parameters.
    The response is either a ``UserBroadWorksReceptionistOfficeGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBroadWorksReceptionistSmallBusinessGetRequest(OCIRequest):
    """
    Request the Receptionist Small Business parameters.
    The response is either a ``UserBroadWorksReceptionistSmallBusinessGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBusyLampFieldGetRequest(OCIRequest):
    """
    Request the settings for the busy lamp field service.
    The response is either a ``UserBusyLampFieldGetResponse()`` or an ``ErrorResponse()``.
    Replaced By ``UserBusyLampFieldGetRequest16sp2()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserBusyLampFieldGetRequest16sp2(OCIRequest):
    """
    Request the settings for the busy lamp field service.
    The response is either a ``UserBusyLampFieldGetResponse16sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallCenterAddSupervisedAgentListRequest(OCIRequest):
    """
    Assign agent(s) to a call center supervisor.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class UserCallCenterDeleteSupervisedAgentListRequest(OCIRequest):
    """
    Delete agent(s) from a call center supervisor.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


class UserCallCenterEnhancedReportingScheduledReportGetRequest(OCIRequest):
    """
    Request to get a call center reporting scheduled report created by supervisor.
    The response is either a ``UserCallCenterEnhancedReportingScheduledReportGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallCenterGetAvailableDNISListRequest(OCIRequest):
    """
    Request a list of available DNIS for agent to select.
    The response is either ``UserCallCenterGetAvailableDNISListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )


class UserCallCenterMonitoringGetRequest(OCIRequest):
    """
    Request the user's Call Center Monitoring settings.
    The response is either a ``UserCallCenterMonitoringGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallCenterMonitoringModifyRequest(OCIRequest):
    """
    Modify the user's Call Center Monitoring settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_tone_to_agent_for_silent_monitoring",
            "playToneToAgentForSilentMonitoring",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* playToneToAgentForSilentMonitoring
    play_tone_to_agent_for_silent_monitoring = Field(
        type=bool,
        required=False,
    )


class UserCallForwardingAlwaysGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Forwarding Always.
    The response is either a ``UserCallForwardingAlwaysGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_ring_splash_active",
            "isRingSplashActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isRingSplashActive
    is_ring_splash_active = Field(
        type=bool,
        required=False,
    )


class UserCallForwardingBusyGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Forwarding Busy.
    The response is either a ``UserCallForwardingBusyGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )


class UserCallForwardingNoAnswerGetRequest13mp16(OCIRequest):
    """
    Request the user level data associated with Call Forwarding No Answer.
    The response is either a ``UserCallForwardingNoAnswerGetResponse13mp16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "number_of_rings",
            "numberOfRings",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* numberOfRings
    number_of_rings = Field(
        type=int,
        required=False,
    )


class UserCallForwardingNotReachableGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Forwarding Not Reachable.
    The response is either a ``UserCallForwardingNotReachableGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )


class UserCallForwardingSelectiveDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's call forwarding selective service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallForwardingSelectiveGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's call forwarding selective service.
    The response is either a ``UserCallForwardingSelectiveGetCriteriaResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallForwardingSelectiveGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's call forwarding selective service.
    The response is either a ``UserCallForwardingSelectiveGetCriteriaResponse21()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallForwardingSelectiveGetRequest(OCIRequest):
    """
    Get the user's call forwarding selective service setting.
    The response is either a ``UserCallForwardingSelectiveGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallForwardingSelectiveGetRequest16(OCIRequest):
    """
    Get the user's call forwarding selective service setting.
    The response is either a ``UserCallForwardingSelectiveGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "delete_all_call_logs",
            "deleteAllCallLogs",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delete_specified_call_logs",
            "deleteSpecifiedCallLogs",
            str,
            True,
            True,
            False,
        ),  # unknown
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* deleteAllCallLogs
    delete_all_call_logs = Field(
        type=bool,
        required=False,
    )
    #: str: *Required* deleteSpecifiedCallLogs
    delete_specified_call_logs = Field(
        type=str,
        required=True,
    )


class UserCallMeNowDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's call me now service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallMeNowGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's call me now service.
    The response is either a ``UserCallMeNowGetCriteriaResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallMeNowGetRequest(OCIRequest):
    """
    Get the user's call me now service setting.
    The response is either a ``UserCallMeNowGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallNotifyDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's call notify service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallNotifyGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's call notify service.
    The response is either a ``UserCallNotifyGetCriteriaResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallNotifyGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's call notify service.
    The response is either a ``UserCallNotifyGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCallNotifyGetRequest(OCIRequest):
    """
    Get the user's call notify service setting.
    The response is either a ``UserCallNotifyGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallPoliciesGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Policies.
    The response is either a ``UserCallPoliciesGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallPoliciesGetRequest17(OCIRequest):
    """
    Request the user level data associated with Call Policies.
    The response is either a ``UserCallPoliciesGetResponse17()``
    or an ``ErrorResponse()``.

    Replaced By ``UserCallPoliciesGetRequest19sp1()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallPoliciesGetRequest19sp1(OCIRequest):
    """
    Request the user level data associated with Call Policies.
    The response is either a ``UserCallPoliciesGetResponse19sp1()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirected_calls_colp_privacy",
            "redirectedCallsCOLPPrivacy",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_being_forwarded_response_call_type",
            "callBeingForwardedResponseCallType",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_identity_for_redirected_calls",
            "callingLineIdentityForRedirectedCalls",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* redirectedCallsCOLPPrivacy
    redirected_calls_colp_privacy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callBeingForwardedResponseCallType
    call_being_forwarded_response_call_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdentityForRedirectedCalls
    calling_line_identity_for_redirected_calls = Field(
        type=str,
        required=False,
    )


class UserCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.
    The response is either a ``UserCallProcessingGetPolicyResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallProcessingGetPolicyRequest14sp7(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.
    The response is either a ``UserCallProcessingGetPolicyResponse14sp7()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallProcessingGetPolicyRequest16(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.
    The response is either a ``UserCallProcessingGetPolicyResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallProcessingGetPolicyRequest17(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.
    The response is either a ``UserCallProcessingGetPolicyResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallProcessingGetPolicyRequest19sp1(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.
    The response is either a ``UserCallProcessingGetPolicyResponse19sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_user_setting",
            "useUserSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useUserSetting
    use_user_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_user_clid_setting",
            "useUserCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_user_media_setting",
            "useUserMediaSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_user_call_limits_setting",
            "useUserCallLimitsSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_user_dclid_setting",
            "useUserDCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_calls",
            "useMaxSimultaneousCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_calls",
            "maxSimultaneousCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_simultaneous_video_calls",
            "useMaxSimultaneousVideoCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_simultaneous_video_calls",
            "maxSimultaneousVideoCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_answered_calls",
            "useMaxCallTimeForAnsweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_call_time_for_unanswered_calls",
            "useMaxCallTimeForUnansweredCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "media_policy_selection",
            "mediaPolicySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "supported_media_set_name",
            "supportedMediaSetName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_redirected_calls",
            "useMaxConcurrentRedirectedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_redirected_calls",
            "maxConcurrentRedirectedCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_find_me_follow_me_depth",
            "useMaxFindMeFollowMeDepth",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_find_me_follow_me_depth",
            "maxFindMeFollowMeDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_redirection_depth",
            "maxRedirectionDepth",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations",
            int,
            False,
            False,
            False,
        ),
        E(
            "clid_policy",
            "clidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "emergency_clid_policy",
            "emergencyClidPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_group_name",
            "useGroupName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dialable_caller_id",
            "enableDialableCallerID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "block_calling_name_for_external_calls",
            "blockCallingNameForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_department_clid_name_override",
            "allowDepartmentCLIDNameOverride",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useUserCLIDSetting
    use_user_clid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useUserMediaSetting
    use_user_media_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useUserCallLimitsSetting
    use_user_call_limits_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useUserDCLIDSetting
    use_user_dclid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousCalls
    use_max_simultaneous_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousCalls
    max_simultaneous_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxSimultaneousVideoCalls
    use_max_simultaneous_video_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxSimultaneousVideoCalls
    max_simultaneous_video_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForAnsweredCalls
    use_max_call_time_for_answered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForAnsweredCallsMinutes
    max_call_time_for_answered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxCallTimeForUnansweredCalls
    use_max_call_time_for_unanswered_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCallTimeForUnansweredCallsMinutes
    max_call_time_for_unanswered_calls_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* mediaPolicySelection
    media_policy_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportedMediaSetName
    supported_media_set_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentRedirectedCalls
    use_max_concurrent_redirected_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentRedirectedCalls
    max_concurrent_redirected_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxFindMeFollowMeDepth
    use_max_find_me_follow_me_depth = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxFindMeFollowMeDepth
    max_find_me_follow_me_depth = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxRedirectionDepth
    max_redirection_depth = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useMaxConcurrentFindMeFollowMeInvocations
    use_max_concurrent_find_me_follow_me_invocations = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxConcurrentFindMeFollowMeInvocations
    max_concurrent_find_me_follow_me_invocations = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* clidPolicy
    clid_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emergencyClidPolicy
    emergency_clid_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowAlternateNumbersForRedirectingIdentity
    allow_alternate_numbers_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useGroupName
    use_group_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDialableCallerID
    enable_dialable_caller_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* blockCallingNameForExternalCalls
    block_calling_name_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowConfigurableCLIDForRedirectingIdentity
    allow_configurable_clid_for_redirecting_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowDepartmentCLIDNameOverride
    allow_department_clid_name_override = Field(
        type=bool,
        required=False,
    )


class UserCallRecordingGetRequest(OCIRequest):
    """
    Get the Call Recording attributes for a user.
    The response is either a ``UserCallRecordingGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "recording_option",
            "recordingOption",
            str,
            False,
            False,
            False,
        ),
        E(
            "pause_resume_notification",
            "pauseResumeNotification",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_call_recording_announcement",
            "enableCallRecordingAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_record_call_repeat_warning_tone",
            "enableRecordCallRepeatWarningTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "record_call_repeat_warning_tone_timer_seconds",
            "recordCallRepeatWarningToneTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_voice_mail_recording",
            "enableVoiceMailRecording",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* recordingOption
    recording_option = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pauseResumeNotification
    pause_resume_notification = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableCallRecordingAnnouncement
    enable_call_recording_announcement = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableRecordCallRepeatWarningTone
    enable_record_call_repeat_warning_tone = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* recordCallRepeatWarningToneTimerSeconds
    record_call_repeat_warning_tone_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableVoiceMailRecording
    enable_voice_mail_recording = Field(
        type=bool,
        required=False,
    )


class UserCallToNumberGetAvailableListRequest(OCIRequest):
    """
    Request to get the user available Call to Number List information. The response
    is either a ``UserCallToNumberGetAvailableListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallTransferGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Transfer.
    The response is either a ``UserCallTransferGetResponse()`` or an ``ErrorResponse()``.
    Replaced By UserCallTransferGetRequest14Sp4
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallTransferGetRequest14sp4(OCIRequest):
    """
    Request the user level data associated with Call Transfer.
    The response is either a ``UserCallTransferGetResponse14sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_recall_active",
            "isRecallActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "recall_number_of_rings",
            "recallNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_diversion_inhibitor_for_blind_transfer",
            "useDiversionInhibitorForBlindTransfer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_diversion_inhibitor_for_consultative_calls",
            "useDiversionInhibitorForConsultativeCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_busy_camp_on",
            "enableBusyCampOn",
            bool,
            False,
            False,
            False,
        ),
        E(
            "busy_camp_on_seconds",
            "busyCampOnSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isRecallActive
    is_recall_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* recallNumberOfRings
    recall_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useDiversionInhibitorForBlindTransfer
    use_diversion_inhibitor_for_blind_transfer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useDiversionInhibitorForConsultativeCalls
    use_diversion_inhibitor_for_consultative_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableBusyCampOn
    enable_busy_camp_on = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* busyCampOnSeconds
    busy_camp_on_seconds = Field(
        type=int,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallWaitingGetRequest17sp4(OCIRequest):
    """
    Request the user level data associated with Call Waiting.
    The response is either a ``UserCallWaitingGetResponse17sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disable_calling_line_id_delivery",
            "disableCallingLineIdDelivery",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* disableCallingLineIdDelivery
    disable_calling_line_id_delivery = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingLineIDBlockingOverrideModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Line ID Blocking Override.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingLineIDDeliveryBlockingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Line ID Delivery Blocking.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserCallingNameDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling
    Name Delivery. The response is either a
    ``UserCallingNameDeliveryGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingNameDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Name Delivery.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active_for_external_calls",
            "isActiveForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_for_internal_calls",
            "isActiveForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActiveForExternalCalls
    is_active_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveForInternalCalls
    is_active_for_internal_calls = Field(
        type=bool,
        required=False,
    )


class UserCallingNameRetrievalGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Name Retrieval.
    The response is either a ``UserCallingNameRetrievalGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingNameRetrievalModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Name Retrieval.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserCallingNumberDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling
    Name Delivery. The response is either a
    ``UserCallingNumberDeliveryGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingNumberDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Number Delivery.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active_for_external_calls",
            "isActiveForExternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_for_internal_calls",
            "isActiveForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActiveForExternalCalls
    is_active_for_external_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveForInternalCalls
    is_active_for_internal_calls = Field(
        type=bool,
        required=False,
    )


class UserCallingPartyCategoryGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Party Category.
    The response is either a ``UserCallingPartyCategoryGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingPartyCategoryGetRequest16(OCIRequest):
    """
    Request the user level data associated with Calling Party Category.
    The response is either a ``UserCallingPartyCategoryGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCallingPartyCategoryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Party Category.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "category",
            "category",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* category
    category = Field(
        type=str,
        required=False,
    )


class UserCallingPartyCategoryModifyRequest16(OCIRequest):
    """
    Modify the user level data associated with Calling Party Category.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "category",
            "category",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* category
    category = Field(
        type=str,
        required=False,
    )


class UserChargeNumberGetRequest(OCIRequest):
    """
    Request the user level data associated with Charge Number.
    The response is either a ``UserChargeNumberGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserChargeNumberGetRequest14sp9(OCIRequest):
    """
    Request the user level data associated with Charge Number.
    The response is either a ``UserChargeNumberGetResponse14sp9()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserChargeNumberModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Charge Number.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_charge_number_for_enhanced_translations",
            "useChargeNumberForEnhancedTranslations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "send_charge_number_to_network",
            "sendChargeNumberToNetwork",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useChargeNumberForEnhancedTranslations
    use_charge_number_for_enhanced_translations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* sendChargeNumberToNetwork
    send_charge_number_to_network = Field(
        type=bool,
        required=False,
    )


class UserClassmarkGetRequest(OCIRequest):
    """
    Request the Class Mark data associated with User.
    The response is either a ``UserClassmarkGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserClassmarkModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Class Mark.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "classmark",
            "classmark",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* classmark
    classmark = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_id",
            "roomId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomId
    room_id = Field(
        type=str,
        required=True,
    )


class UserCollaborateInstantRoomAddRequest(OCIRequest):
    """
    Request to add collaborate instant room.
    The response is either a ``UserCollaborateInstantRoomAddResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_name",
            "roomName",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_room_id_as_room_name",
            "useRoomIdAsRoomName",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomName
    room_name = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useRoomIdAsRoomName
    use_room_id_as_room_name = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_id",
            "roomId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomId
    room_id = Field(
        type=str,
        required=True,
    )


class UserCollaborateInstantRoomParametersGetRequest(OCIRequest):
    """
    Request collaborate instant room settings.
    The response is either ``UserCollaborateInstantRoomParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCollaborateInstantRoomParametersModifyRequest(OCIRequest):
    """
    Request to modify collaborate instant room settings.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            False,
            False,
        ),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "owner_required",
            "ownerRequired",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* endCollaborateRoomSessionOnOwnerExit
    end_collaborate_room_session_on_owner_exit = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* ownerRequired
    owner_required = Field(
        type=bool,
        required=False,
    )


class UserCollaborateMyRoomGetRequest(OCIRequest):
    """
    Request collaborate room settings for MyRoom.
    The response is either ``UserCollaboratMyRoomGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCollaborateMyRoomModifyRequest(OCIRequest):
    """
    Request to modify collaborate room settings for MyRoom.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_name",
            "roomName",
            str,
            False,
            False,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            False,
            False,
        ),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "owner_required",
            "ownerRequired",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* roomName
    room_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* endCollaborateRoomSessionOnOwnerExit
    end_collaborate_room_session_on_owner_exit = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* ownerRequired
    owner_required = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_id",
            "roomId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomId
    room_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_id",
            "roomId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomId
    room_id = Field(
        type=str,
        required=True,
    )


class UserCollaborateRoomListGetRequest(OCIRequest):
    """
    Request the list of collaborate room instances for this specific user.
    The response is either a ``UserCollaborateRoomListGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCommPilotCallManagerGetRequest(OCIRequest):
    """
    Request the user level data associated with CommPilot Call Manager.
    The response is either a ``UserCommPilotCallManagerGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCommPilotCallManagerModifyRequest(OCIRequest):
    """
    Modify the user level data associated with CommPilot Call Manager.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "launch_on_login",
            "launchOnLogin",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* launchOnLogin
    launch_on_login = Field(
        type=bool,
        required=False,
    )


class UserCommPilotExpressGetRequest(OCIRequest):
    """
    Get the user's commPilot express service setting.
    The response is either a ``UserCommPilotExpressGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCommPilotExpressSRGetRequest13mp16(OCIRequest):
    """
    Get the user's commPilot express SR service setting.
    The response is either a ``UserCommPilotExpressSRGetResponse13mp16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserCommunicationBarringAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of Communication Barring Authorization codes from a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class UserCommunicationBarringAuthorizationCodeGetListRequest(OCIRequest):
    """
    Get a list of Communication Barring Authorization Code for a user.
    The response is either a ``UserCommunicationBarringAuthorizationCodeGetListResponse()``
    or an ``ErorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_setting",
            "useGroupSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupSetting
    use_group_setting = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* profileName
    profile_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_profile",
            "enableProfile",
            int,
            False,
            False,
            False,
        ),
        E(
            "old_passcode",
            "oldPasscode",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_passcode",
            "newPasscode",
            str,
            False,
            False,
            False,
        ),
        E(
            "reset_lockout",
            "resetLockout",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* enableProfile
    enable_profile = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* oldPasscode
    old_passcode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* newPasscode
    new_passcode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* resetLockout
    reset_lockout = Field(
        type=bool,
        required=False,
    )


class UserConnectedLineIdentificationRestrictionGetRequest(OCIRequest):
    """
    Request the user level data associated with Connected Line ID Restriction.
    The response is either a ``UserConnectedLineIdentificationRestrictionGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserConnectedLineIdentificationRestrictionModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Connected Line ID Restriction.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserCustomRingbackUserDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's custom ringback service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCustomRingbackUserGetCriteriaListRequest(OCIRequest):
    """
    Get the user's custom ringback service criteria listing.
    The response is either a ``UserCustomRingbackUserGetCriteriaListResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCustomRingbackUserGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.
    The response is either a ``UserCustomRingbackUserGetCriteriaResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserCustomRingbackUserGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.
    The response is either a ``UserCustomRingbackUserGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserDeleteRequest(OCIRequest):
    """
    Request to delete a user.  The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserDevicePoliciesGetRequest(OCIRequest):
    """
    Request the user level data associated with Device Policy.
    The response is either a ``UserDevicePoliciesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserDevicePoliciesGetRequest19sp1(OCIRequest):
    """
    Request the user level data associated with Device Policy.
    The response is either a ``UserDevicePoliciesGetResponse19sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserDevicePoliciesGetRequest20(OCIRequest):
    """
    Request the user level data associated with Device Policy.
    The response is either a ``UserDevicePoliciesGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserDevicePoliciesGetRequest21(OCIRequest):
    """
    Request the user level data associated with Device Policy.
    The response is either a ``UserDevicePoliciesGetResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_mode",
            "lineMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_device_feature_synchronization",
            "enableDeviceFeatureSynchronization",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_dnd",
            "enableDnd",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_call_forwarding_always",
            "enableCallForwardingAlways",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_call_forwarding_busy",
            "enableCallForwardingBusy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_call_forwarding_no_answer",
            "enableCallForwardingNoAnswer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_acd",
            "enableAcd",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_executive",
            "enableExecutive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_executive_assistant",
            "enableExecutiveAssistant",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_security_classification",
            "enableSecurityClassification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_call_recording",
            "enableCallRecording",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_call_decline",
            "enableCallDecline",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* lineMode
    line_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableDeviceFeatureSynchronization
    enable_device_feature_synchronization = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDnd
    enable_dnd = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCallForwardingAlways
    enable_call_forwarding_always = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCallForwardingBusy
    enable_call_forwarding_busy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCallForwardingNoAnswer
    enable_call_forwarding_no_answer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAcd
    enable_acd = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableExecutive
    enable_executive = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableExecutiveAssistant
    enable_executive_assistant = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableSecurityClassification
    enable_security_classification = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCallRecording
    enable_call_recording = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCallDecline
    enable_call_decline = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_barge_in_warning_tone",
            "enableBargeInWarningTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_target_selection",
            "enableAutomaticTargetSelection",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableBargeInWarningTone
    enable_barge_in_warning_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAutomaticTargetSelection
    enable_automatic_target_selection = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserDoNotDisturbGetRequest(OCIRequest):
    """
    Request the user level data associated with Do Not Disturb.
    The response is either a ``UserDoNotDisturbGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ring_splash",
            "ringSplash",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* ringSplash
    ring_splash = Field(
        type=bool,
        required=False,
    )


class UserDualModeVCCGetRequest(OCIRequest):
    """
    Request to get the user level Dual Mode VCC service attributes
    Response is either ``UserDualModeVCCGetResponse()`` or ``ErrorResponse()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserDualModeVCCModifyRequest(OCIRequest):
    """
    Request to modify the user level IN Integration service attributes
    Response is either ``UserINIntegrationGetResponse()`` or ``ErrorResponse()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "subscriber_user_name",
            "subscriberUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "subscriber_password",
            "subscriberPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* subscriberUserName
    subscriber_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* subscriberPassword
    subscriber_password = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "starting_offset",
            "startingOffset",
            int,
            False,
            True,
            False,
        ),
        E(
            "num_calls",
            "numCalls",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: int: *Required* startingOffset
    starting_offset = Field(
        type=int,
        required=True,
    )
    #: int: *Required* numCalls
    num_calls = Field(
        type=int,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "starting_offset",
            "startingOffset",
            int,
            False,
            True,
            False,
        ),
        E(
            "num_calls",
            "numCalls",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: int: *Required* startingOffset
    starting_offset = Field(
        type=int,
        required=True,
    )
    #: int: *Required* numCalls
    num_calls = Field(
        type=int,
        required=True,
    )


class UserExecutiveAssistantGetRequest(OCIRequest):
    """
    Get the setting of an executive assistant.
    The response is either ``UserExecutiveAssistantGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserExecutiveGetAssistantRequest(OCIRequest):
    """
    Get the assistant setting and the list of assistants assigned to an executive.
    The response is either ``UserExecutiveGetAssistantsResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_screening",
            "enableScreening",
            bool,
            False,
            False,
            False,
        ),
        E(
            "screening_alert_type",
            "screeningAlertType",
            str,
            False,
            False,
            False,
        ),
        E(
            "alert_broad_works_mobility_location",
            "alertBroadWorksMobilityLocation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_broad_works_anywhere_locations",
            "alertBroadWorksAnywhereLocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_shared_call_appearance_locations",
            "alertSharedCallAppearanceLocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alerting_mode",
            "alertingMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "alerting_calling_line_id_name_mode",
            "alertingCallingLineIdNameMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "alerting_custom_calling_line_id_name",
            "alertingCustomCallingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "unicode_alerting_custom_calling_line_id_name",
            "unicodeAlertingCustomCallingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "alerting_calling_line_id_phone_number_mode",
            "alertingCallingLineIdPhoneNumberMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "alerting_custom_calling_line_id_phone_number",
            "alertingCustomCallingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_push_recall_number_of_rings",
            "callPushRecallNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "next_assistant_number_of_rings",
            "nextAssistantNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_rollover",
            "enableRollover",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rollover_wait_time_seconds",
            "rolloverWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "rollover_action",
            "rolloverAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "rollover_forward_to_phone_number",
            "rolloverForwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableScreening
    enable_screening = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* screeningAlertType
    screening_alert_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* alertBroadWorksMobilityLocation
    alert_broad_works_mobility_location = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertBroadWorksAnywhereLocations
    alert_broad_works_anywhere_locations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertSharedCallAppearanceLocations
    alert_shared_call_appearance_locations = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* alertingMode
    alerting_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alertingCallingLineIdNameMode
    alerting_calling_line_id_name_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alertingCustomCallingLineIdName
    alerting_custom_calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unicodeAlertingCustomCallingLineIdName
    unicode_alerting_custom_calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alertingCallingLineIdPhoneNumberMode
    alerting_calling_line_id_phone_number_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alertingCustomCallingLineIdPhoneNumber
    alerting_custom_calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* callPushRecallNumberOfRings
    call_push_recall_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* nextAssistantNumberOfRings
    next_assistant_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableRollover
    enable_rollover = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* rolloverWaitTimeSeconds
    rollover_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* rolloverAction
    rollover_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* rolloverForwardToPhoneNumber
    rollover_forward_to_phone_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserExternalCallingLineIDDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with External Calling Line ID Delivery.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserExternalCustomRingbackGetRequest(OCIRequest):
    """
    Request the user level data associated with External Custom Ringback.
    The response is either a ``UserExternalCustomRingbackGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_request_uri",
            "sipRequestURI",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipRequestURI
    sip_request_uri = Field(
        type=str,
        required=False,
    )


class UserFaxMessagingGetRequest(OCIRequest):
    """
    Request the user level data associated with Fax Messaging.
    The response is either a ``UserFaxMessagingGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserFaxMessagingGetRequest17(OCIRequest):
    """
    Request the user level data associated with Fax Messaging.
    The response is either a ``UserFaxMessagingGetResponse17()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserFaxMessagingGetRequest17sp1(OCIRequest):
    """
    Request the user level data associated with Fax Messaging.
    The response is either a ``UserFaxMessagingGetResponse17sp1()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserFeatureAccessCodeGetListRequest(OCIRequest):
    """
    Get the list of feature access codes for a user.
    The response is either a ``UserFeatureAccessCodeGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserFlexibleSeatingGuestGetRequest(OCIRequest):
    """
    Request the user level data associated with flexible seating guest.
    The response is either a ``UserFlexibleSeatingGuestGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserGetRegistrationListRequest(OCIRequest):
    """
    Request to get a list of registrations for a user.
    The response is either a ``UserGetRegistrationListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest14(OCIRequest):
    """
    Request to get the user information.  The response is either ``UserGetResponse14()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest14sp4(OCIRequest):
    """
    Request to get the user information.  The response is either ``UserGetResponse14sp4()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest14sp9(OCIRequest):
    """
    Request to get the user information.  The response is either ``UserGetResponse14sp4()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest15sp2(OCIRequest):
    """
    Request to get the user information.  The response is either
    ``UserGetResponse15sp2()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest17(OCIRequest):
    """
    Replaced By ``UserGetRequest17sp4()``

    Request to get the user information.  The response is either
    ``UserGetResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest17sp3(OCIRequest):
    """
    Replaced By ``UserGetRequest18()``

    Request to get the user information.  The response is either
    ``UserGetResponse17sp3()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest17sp4(OCIRequest):
    """
    Replaced By ``UserGetRequest18()``

    Request to get the user information.  The response is either
    ``UserGetResponse17sp4()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest18(OCIRequest):
    """
    Request to get the user information.  The response is either
    ``UserGetResponse18()`` or ``ErrorResponse()``.

    Replaced By ``UserGetRequest19()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest19(OCIRequest):
    """
    Request to get the user information.  The response is either
    ``UserGetResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest20(OCIRequest):
    """
    Request to get the user information.  The response is either
    ``UserGetResponse20()`` or ``ErrorResponse()``.

    Replaced By ``UserGetRequest21()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGetRequest21(OCIRequest):
    """
    Request to get the user information.  The response is either
    ``UserGetResponse21()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGroupNightForwardingGetRequest(OCIRequest):
    """
    Request to get the Group Night Forwarding user parameters.
    The response is either ``UserGroupNightForwardingGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserGroupNightForwardingModifyRequest(OCIRequest):
    """
    Request to modify the Group Night Forwarding user parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "night_forwarding",
            "nightForwarding",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* nightForwarding
    night_forwarding = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHolidayScheduleDeleteRequest(OCIRequest):
    """
    Delete a holiday schedule from a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )


class UserHolidayScheduleGetListRequest(OCIRequest):
    """
    Get a holiday schedule list for a user.
    The response is either a ``UserHolidayScheduleGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHolidayScheduleGetRequest(OCIRequest):
    """
    Get a holiday schedule a user.
    The response is either a ``UserHolidayScheduleGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )


class UserHotelingGuestGetRequest14(OCIRequest):
    """
    Request the user level data associated with Hoteling Guest.
    The response is either a ``UserHotelingGuestGetResponse14()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHotelingGuestGetRequest14sp2(OCIRequest):
    """
    Request the user level data associated with Hoteling Guest.
    The response is either a ``UserHotelingGuestGetResponse14()`` or an ``ErrorResponse()``.
    Replaced By ``UserHotelingGuestGetRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHotelingGuestGetRequest14sp4(OCIRequest):
    """
    Request the user level data associated with Hoteling Guest.
    The response is either a ``UserHotelingGuestGetResponse14sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_association_limit",
            "enableAssociationLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "association_limit_hours",
            "associationLimitHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "host_user_id",
            "hostUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAssociationLimit
    enable_association_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* associationLimitHours
    association_limit_hours = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* hostUserId
    host_user_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_association_limit",
            "enableAssociationLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "association_limit_hours",
            "associationLimitHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "host_user_id",
            "hostUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAssociationLimit
    enable_association_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* associationLimitHours
    association_limit_hours = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* hostUserId
    host_user_id = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHotelingHostGetRequest14sp4(OCIRequest):
    """
    Request the user level data associated with Hoteling Host.
    The response is either a ``UserHotelingHostGetResponse14sp4()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHotelingHostGetRequest17(OCIRequest):
    """
    Request the user level data associated with Hoteling Host.
    The response is either a ``UserHotelingHostGetResponse17()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserHotelingHostModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Hoteling Host.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enforce_association_limit",
            "enforceAssociationLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "association_limit_hours",
            "associationLimitHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "access_level",
            "accessLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "remove_guest_association",
            "removeGuestAssociation",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enforceAssociationLimit
    enforce_association_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* associationLimitHours
    association_limit_hours = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* accessLevel
    access_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* removeGuestAssociation
    remove_guest_association = Field(
        type=bool,
        required=False,
    )


class UserINIntegrationGetRequest(OCIRequest):
    """
    Request to get the user level IN Integration service attributes
    Response is either ``UserINIntegrationGetResponse()`` or ``ErrorResponse()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserINIntegrationModifyRequest(OCIRequest):
    """
    Request to modify the user level IN Integration service attributes
    Response is either ``SuccessResponse()`` or ``ErrorResponse()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_service_key",
            "originatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "terminating_service_key",
            "terminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* originatingServiceKey
    originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* terminatingServiceKey
    terminating_service_key = Field(
        type=int,
        required=False,
    )


class UserInCallServiceActivationGetRequest(OCIRequest):
    """
    Request the user level data associated with In-Call Service Activation.
    The response is either a ``UserInCallServiceActivationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserInCallServiceActivationModifyRequest(OCIRequest):
    """
    Modify the user level data associated with In-Call Service Activation.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserIncomingCallingPlanGetRequest(OCIRequest):
    """
    Request the user's incoming calling plan settings.
    The response is either a ``UserIncomingCallingPlanGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserIntegratedIMPGetRequest(OCIRequest):
    """
    Get the Integrated IMP specific service attribute for the user.
    The response is either ``UserIMPGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserIntegratedIMPModifyRequest(OCIRequest):
    """
    Modifies the Integrated IMP specific service attribute for the user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserIntelligentNetworkServiceControlGetRequest(OCIRequest):
    """
    Request the user level data associated with Intelligent Network Service Control.
    The response is either a ``UserIntelligentNetworkServiceControlGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserIntelligentNetworkServiceControlModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Intelligent Network Service Control.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "pre_answer_actions_enabled",
            "preAnswerActionsEnabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* preAnswerActionsEnabled
    pre_answer_actions_enabled = Field(
        type=bool,
        required=False,
    )


class UserInterceptUserGetRequest(OCIRequest):
    """
    Get the user's intercept user service settings.
    The response is either a ``UserInterceptUserGetResponse()`` or an ``ErrorResponse()``.
    Replaced By ``UserInterceptUserGetRequest16()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserInterceptUserGetRequest16(OCIRequest):
    """
    Get the user's intercept user service settings.
    The response is either a ``UserInterceptUserGetResponse16()`` or an ``ErrorResponse()``.
    Replaced By ``UserInterceptUserGetRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserInterceptUserGetRequest16sp1(OCIRequest):
    """
    Get the user's intercept user service settings.
    The response is either a ``UserInterceptUserGetResponse16sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserInternalCallingLineIDDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with Internal Calling Line ID Delivery.
    The response is either a ``UserInternalCallingLineIDDeliveryGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserInternalCallingLineIDDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Internal Calling Line ID Delivery.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserLDAPIntegrationGetDirectoryEntryRequest(OCIRequest):
    """
    Request one LDAP entry for a user.
    The response is either a ``UserLDAPIntegrationGetDirectoryEntryResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )


class UserLegacyAutomaticCallbackGetRequest(OCIRequest):
    """
    Request the user level data associated with Legacy Automatic Callback.
    The response is either a ``UserLegacyAutomaticCallbackGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserLegacyAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Legacy Automatic Callback.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserLinePortGetListRequest(OCIRequest):
    """
    Request to get all user's configured line ports.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )


class UserMaliciousCallTraceGetRequest(OCIRequest):
    """
    Request the user level data associated with Malicious Call Trace.
    The response is either a ``UserMaliciousCallTraceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "bridge_id",
            "bridgeId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* bridgeId
    bridge_id = Field(
        type=str,
        required=False,
    )


class UserMeetMeConferencingGetConferenceRecordingListRequest(OCIRequest):
    """
    Get the list of recordings of the conferences owned by the host.
    The response is either ``UserMeetMeConferencingGetConferenceRecordingListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserModifyUserIdRequest(OCIRequest):
    """
    Modify the user id of a real or virtual user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_user_id",
            "newUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* newUserId
    new_user_id = Field(
        type=str,
        required=True,
    )


class UserMusicOnHoldGetRequest(OCIRequest):
    """
    Request the user level data associated with Music On Hold.
    The response is either a ``UserMusicOnHoldGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserMusicOnHoldModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Music On Hold.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserMusicOnHoldUserGetRequest16(OCIRequest):
    """
    Request the user level data associated with Music On Hold User.
    The response is either a ``UserMusicOnHoldUserGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserMusicOnHoldUserGetRequest20(OCIRequest):
    """
    Request the user level data associated with Music On Hold User.
    The response is either a ``UserMusicOnHoldUserGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserNetworkConferencingGetRequest(OCIRequest):
    """
    Request the Network-Based Conferencing data for a specified user.
    The response is either a ``UserNetworkConferencingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserNumberPortabilityAnnouncementGetRequest(OCIRequest):
    """
    Get the Number Portability Announcement attributes for the user.
    The response is either ``UserNumberPortabilityAnnouncementGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserNumberPortabilityAnnouncementModifyRequest(OCIRequest):
    """
    Modify the Number Portability Announcement attributes for the user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable",
            "enable",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enable
    enable = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of authorization codes from a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanAuthorizationCodeGetListRequest(OCIRequest):
    """
    Request the list of authorization codes for a user.
    The response is either a ``UserOutgoingCallingPlanAuthorizationCodeGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanAuthorizationCodeGetRequest(OCIRequest):
    """
    Request the authorization code setting for a user.
    The response is either a ``UserOutgoingCallingPlanAuthorizationCodeGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanAuthorizationCodeModifyRequest(OCIRequest):
    """
    Modify the authorization setting for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )


class UserOutgoingCallingPlanCallMeNowGetRequest(OCIRequest):
    """
    Request the Call Me Now call permissions for a user.
    The response is either a ``UserOutgoingCallingPlanCallMeNowGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanDigitPlanOriginatingGetRequest(OCIRequest):
    """
    Request the originating permissions for digit patterns for a user.
    The response is either a ``UserOutgoingCallingPlanDigitPlanOriginatingGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanDigitPlanRedirectingGetRequest(OCIRequest):
    """
    Request the redirecting permissions for digit patterns for a user.
    The response is either a ``UserOutgoingCallingPlanDigitPlanRedirectingGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanOriginatingGetRequest(OCIRequest):
    """
    Request the originating permissions for a user.
    The response is either a ``UserOutgoingCallingPlanOriginatingGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanPinholeDigitPlanOriginatingGetRequest(OCIRequest):
    """
    Request the originating permissions for Pinhole digit patterns for a user.
    The response is either a ``UserOutgoingCallingPlanPinholeDigitPlanOriginatingGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanPinholeDigitPlanRedirectingGetRequest(OCIRequest):
    """
    Request the redirecting permissions for Pinhole digit patterns for a user.
    The response is either a ``UserOutgoingCallingPlanPinholeDigitPlanRedirectingGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanRedirectedGetRequest(OCIRequest):
    """
    Request the call forwarded/transferred permissions for a user.
    The response is either a ``UserOutgoingCallingPlanRedirectedGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutgoingCallingPlanRedirectingGetRequest(OCIRequest):
    """
    Request the initiating call forwards/transfer permissions for a user.
    The response is either a ``UserOutgoingCallingPlanRedirectingGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* code
    code = Field(
        type=str,
        required=False,
    )


class UserOutgoingCallingPlanTransferNumbersGetRequest(OCIRequest):
    """
    Request the transfer numbers for a user.
    The response is either a ``UserOutgoingCallingPlanTransferNumbersGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutlookIntegrationGetRequest(OCIRequest):
    """
    Request the user level data associated with Outlook Integration.
    The response is either a ``UserOutlookIntegrationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserOutlookIntegrationModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Outlook Integration.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "contact_retrieval_selection",
            "contactRetrievalSelection",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* contactRetrievalSelection
    contact_retrieval_selection = Field(
        type=str,
        required=False,
    )


class UserPasswordInfoGetRequest(OCIRequest):
    """
    Request the user's Web password information.
    The response is either a ``UserPasswordInfoGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPersonalAssistantCallToNumberGetListRequest(OCIRequest):
    """
    Request to get the user assigned Call to Number List information. The response is
    either a ``UserPersonalAssistantCallToNumberGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPersonalAssistantExclusionNumberAddRequest(OCIRequest):
    """
    Add a User Personal Assistant Exclusion Number.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "exclusion_number",
            "exclusionNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* exclusionNumber
    exclusion_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class UserPersonalAssistantExclusionNumberDeleteListRequest(OCIRequest):
    """
    Delete a list of User Personal Assistant Exclusion Number.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "exclusion_number",
            "exclusionNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* exclusionNumber
    exclusion_number = Field(
        type=str,
        required=True,
    )


class UserPersonalAssistantExclusionNumberGetRequest(OCIRequest):
    """
    Get a Personal Assistant Exclusion Number.
    The response is either ``UserPersonalAssistantExclusionNumberGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "exclusion_number",
            "exclusionNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* exclusionNumber
    exclusion_number = Field(
        type=str,
        required=True,
    )


class UserPersonalAssistantExclusionNumberModifyRequest(OCIRequest):
    """
    Modify an existing User Personal Assistant Exclusion Number description.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "exclusion_number",
            "exclusionNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* exclusionNumber
    exclusion_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )


class UserPersonalAssistantGetRequest(OCIRequest):
    """
    Request to get the User Personal Assistant information.
    The response is either a ``UserPersonalAssistantGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPersonalAssistantModifyRequest(OCIRequest):
    """
    Modify the User Personal Assistant information.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "presence",
            "presence",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_transfer_to_attendant",
            "enableTransferToAttendant",
            bool,
            False,
            False,
            False,
        ),
        E(
            "attendant_number",
            "attendantNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_ring_splash",
            "enableRingSplash",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_expiration_time",
            "enableExpirationTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "expiration_time",
            "expirationTime",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* presence
    presence = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableTransferToAttendant
    enable_transfer_to_attendant = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* attendantNumber
    attendant_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableRingSplash
    enable_ring_splash = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableExpirationTime
    enable_expiration_time = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* expirationTime
    expiration_time = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )


class UserPersonalPhoneListModifyRequest(OCIRequest):
    """
    Modify an entry in a user's personal phone list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry_name",
            "entryName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_entry_name",
            "newEntryName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* entryName
    entry_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEntryName
    new_entry_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_search_string",
            "nameSearchString",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* nameSearchString
    name_search_string = Field(
        type=str,
        required=False,
    )


class UserPhysicalLocationGetRequest(OCIRequest):
    """
    Request the user level data associated with Physical Location.
    The response is either a ``UserPhysicalLocationGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPhysicalLocationModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Physical Location.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPortalPasscodeGetInfoRequest(OCIRequest):
    """
    Request the user's portal passcode information.
    The response is either a ``UserPortalPasscodeGetInfoResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPortalPasscodeModifyRequest(OCIRequest):
    """
    Modify the user's Portal passcode
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "old_passcode",
            "oldPasscode",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_passcode",
            "newPasscode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* oldPasscode
    old_passcode = Field(
        type=str,
        required=False,
    )
    #: str: *Required* newPasscode
    new_passcode = Field(
        type=str,
        required=True,
    )


class UserPreAlertingAnnouncementDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's pre-alerting service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserPreAlertingAnnouncementGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's pre-alerting service.
    The response is either a ``UserPreAlertingAnnouncementGetCriteriaResponse21()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserPreAlertingAnnouncementGetRequest(OCIRequest):
    """
    Get the user's pre-alerting service setting.
    The response is either a ``UserPreAlertingAnnouncementGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPreAlertingAnnouncementGetRequest20(OCIRequest):
    """
    Get the user's pre-alerting service setting.
    The response is either a ``UserPreAlertingAnnouncementGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPreferredCarrierUserGetRequest(OCIRequest):
    """
    Requests the currently configured preferred carriers for a user.
    The response is either a ``UserPreferredCarrierUserGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPrepaidGetRequest(OCIRequest):
    """
    Request the user level data associated with Prepaid.
    The response is either a ``UserPrepaidGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserPrimaryEndpointAdvancedSettingGetRequest(OCIRequest):
    """
    Get the Users Primary Endpoint setting.
    The response is either a ``UserPrimaryEndpointAdvancedSettingGetResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPrimaryEndpointAdvancedSettingModifyRequest(OCIRequest):
    """
    Modify the Users Primary Endpoint line control settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_origination",
            "allowOrigination",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_termination",
            "allowTermination",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* allowOrigination
    allow_origination = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowTermination
    allow_termination = Field(
        type=bool,
        required=False,
    )


class UserPriorityAlertDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's priority alert service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserPriorityAlertGetCriteriaListRequest(OCIRequest):
    """
    Get the user's priority alert criteria listing.
    The response is either a ``UserPriorityAlertGetCriteriaListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPriorityAlertGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's priority alert service.
    The response is either a ``UserPriorityAlertGetCriteriaResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserPriorityAlertGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's priority alert service.
    The response is either a ``UserPriorityAlertGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserPrivacyGetRequest(OCIRequest):
    """
    Request the user level data associated with Privacy.
    The response is either a ``UserPrivacyGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserPushToTalkGetRequest(OCIRequest):
    """
    Request the push to talk service setting.
    The response is either a ``UserPushToTalkGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserRemoteOfficeGetRequest(OCIRequest):
    """
    Request the user level data associated with Remote Office.
    The response is either a ``UserRemoteOfficeGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserRemoteOfficeModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Remote Office.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "remote_office_phone_number",
            "remoteOfficePhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* remoteOfficePhoneNumber
    remote_office_phone_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )


class UserRoutePointSupervisorGetListRequest(OCIRequest):
    """
    Get a list of Route Point supervisors assigned to a user.
    The response is either a
    ``UserRoutePointSupervisorGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSMDIMessageDeskAddServerRequest(OCIRequest):
    """
    Request to add a SMDI Server for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            True,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* netAddress
    net_address = Field(
        type=str,
        required=True,
    )
    #: int: *Required* port
    port = Field(
        type=int,
        required=True,
    )


class UserSMDIMessageDeskDeleteServerListRequest(OCIRequest):
    """
    Request to delete a list of SMDI Servers for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class UserSMDIMessageDeskGetRequest(OCIRequest):
    """
    Get the user's SMDI Message Desk service personal setting.
    The response is either a ``UserSMDIMessageDeskGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSMDIMessageDeskGetServerListRequest(OCIRequest):
    """
    Request to get a list of SMDI Servers defined for a user.
    The response is either a ``UserSMDIMessageDeskGetServerListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSMDIMessageDeskModifyRequest(OCIRequest):
    """
    Modify the user's SMDI Message Desk service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "message_desk_number",
            "messageDeskNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* messageDeskNumber
    message_desk_number = Field(
        type=str,
        required=False,
    )


class UserScheduleAddRequest(OCIRequest):
    """
    Add a user schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_name",
            "scheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleName
    schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* scheduleType
    schedule_type = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* scheduleType
    schedule_type = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_type",
            "scheduleType",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* scheduleType
    schedule_type = Field(
        type=str,
        required=False,
    )


class UserSecurityClassificationGetRequest(OCIRequest):
    """
    Get a user's Security Classifications configuration.
    The response is either ``UserSecurityClassificationGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSecurityClassificationModifyRequest(OCIRequest):
    """
    Modify a user's Security Classification configuration
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "security_classification",
            "securityClassification",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* securityClassification
    security_classification = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallAcceptanceDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's selective call acceptance service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallAcceptanceGetCriteriaListRequest(OCIRequest):
    """
    Get the user's selective call acceptance criteria listing.
    The response is either a ``UserSelectiveCallAcceptanceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallAcceptanceGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's selective call acceptance service.
    The response is either a ``UserSelectiveCallAcceptanceGetCriteriaResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallAcceptanceGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's selective call acceptance service.
    The response is either a ``UserSelectiveCallAcceptanceGetCriteriaResponse21()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallRejectionDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's selective call rejection service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallRejectionGetCriteriaListRequest(OCIRequest):
    """
    Get the user's selective call rejection criteria listing.
    The response is either a ``UserSelectiveCallRejectionGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallRejectionGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's selective call rejection service.
    The response is either a ``UserSelectiveCallRejectionGetCriteriaResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSelectiveCallRejectionGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's selective call rejection service.
    The response is either a ``UserSelectiveCallRejectionGetCriteriaResponse21()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSequentialRingDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's sequential ring service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSequentialRingGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's sequential ring service.
    The response is either a ``UserSequentialRingGetCriteriaResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSequentialRingGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's sequential ring service.
    The response is either a ``UserSequentialRingGetCriteriaResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSequentialRingGetRequest13mp16(OCIRequest):
    """
    Get the user's sequential ring service setting.
    The response is either a ``UserSequentialRingGetResponse13mp16()`` or an
    ``ErrorResponse()``.
    Replaced By ``UserSequentialRingGetRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSequentialRingGetRequest14sp4(OCIRequest):
    """
    Get the user's sequential ring service setting.
    The response is either a ``UserSequentialRingGetResponse14sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserServiceAssignListRequest(OCIRequest):
    """
    Request to assign the user services and service packs for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=False,
    )


class UserServiceGetAssignmentListRequest(OCIRequest):
    """
    Requests the user's service and service pack assignment list with status.
    The response is either ``UserServiceGetAssignmentListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserServiceIsAssignedRequest(OCIRequest):
    """
    Request to determine if a UserService or service pack is assigned to the user.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceName
    service_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )


class UserServiceScriptsUserClearLogRequest(OCIRequest):
    """
    Clear the Service Script User Log.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserServiceScriptsUserGetLogRequest(OCIRequest):
    """
    Request the user level data associated Service Scripts User Log.
    The response is either a ``UserServiceScriptsGetUserLogResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserServiceScriptsUserGetRequest(OCIRequest):
    """
    Request the user level data associated with Service Scripts User Configuration.
    The response is either a ``UserServiceScriptsUserGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserServiceUnassignListRequest(OCIRequest):
    """
    Requests to unassign the user services and service packs for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=False,
    )


class UserShInterfaceGetUserIdDataRequest(OCIRequest):
    """
    Returns the Sh non-transparent data stored against a userId.
    The response is either a ``UserShInterfaceGetUserIdDataResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSharedCallAppearanceGetRequest14(OCIRequest):
    """
    Get the user's Shared Call Appearance service setting.
    The response is either a ``UserSharedCallAppearanceGetResponse14()`` or an
    ``ErrorResponse()``.
    Replaced By ``UserSharedCallAppearanceGetRequest14sp2()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSharedCallAppearanceGetRequest14sp2(OCIRequest):
    """
    Get the user's Shared Call Appearance service setting.
    The response is either a ``UserSharedCallAppearanceGetResponse14sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSharedCallAppearanceGetRequest16sp2(OCIRequest):
    """
    Get the user's Shared Call Appearance service setting.
    The response is either a ``UserSharedCallAppearanceGetResponse16sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alert_all_appearances_for_click_to_dial_calls",
            "alertAllAppearancesForClickToDialCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_all_appearances_for_group_paging_calls",
            "alertAllAppearancesForGroupPagingCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_sca_call_retrieve",
            "allowSCACallRetrieve",
            bool,
            False,
            False,
            False,
        ),
        E(
            "multiple_call_arrangement_is_active",
            "multipleCallArrangementIsActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_bridging_between_locations",
            "allowBridgingBetweenLocations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bridge_warning_tone",
            "bridgeWarningTone",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_call_park_notification",
            "enableCallParkNotification",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* alertAllAppearancesForClickToDialCalls
    alert_all_appearances_for_click_to_dial_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertAllAppearancesForGroupPagingCalls
    alert_all_appearances_for_group_paging_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowSCACallRetrieve
    allow_sca_call_retrieve = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* multipleCallArrangementIsActive
    multiple_call_arrangement_is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowBridgingBetweenLocations
    allow_bridging_between_locations = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* bridgeWarningTone
    bridge_warning_tone = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableCallParkNotification
    enable_call_park_notification = Field(
        type=bool,
        required=False,
    )


class UserSimultaneousRingFamilyAddPhoneNumberRequest(OCIRequest):
    """
    Add a new phone number and set the answer confirmation setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=True,
    )


class UserSimultaneousRingFamilyDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's simultaneous ring family service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyDeletePhoneNumberRequest(OCIRequest):
    """
    Delete the phone number specified.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's simultaneous ring family service.
    The response is either a ``UserSimultaneousRingFamilyGetCriteriaResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyGetPhoneNumberRequest(OCIRequest):
    """
    Get the answer confirmation setting for the phone number specified.
    The response is either a ``UserSimultaneousRingFamilyGetPhoneNumberResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyGetRequest(OCIRequest):
    """
    Get the user's simultaneous ring service family setting.
    The response is either a ``UserSimultaneousRingFamilyGetResponse()`` or an
    ``ErrorResponse()``.
    Replaced By ``UserSimultaneousRingFamilyGetRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyGetRequest14sp4(OCIRequest):
    """
    Get the user's simultaneous ring service Family setting.
    The response is either a ``UserSimultaneousRingFamilyGetResponse14sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyGetRequest17(OCIRequest):
    """
    Get the user's simultaneous ring family service setting.
    The response is either a ``UserSimultaneousRingFamilyGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingFamilyModifyPhoneNumberRequest(OCIRequest):
    """
    Modify the require confirmation setting for the destination.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=False,
    )


class UserSimultaneousRingFamilyModifyRequest14sp4(OCIRequest):
    """
    Modify the user's simultaneous ring family service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "incoming_calls",
            "incomingCalls",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* incomingCalls
    incoming_calls = Field(
        type=str,
        required=False,
    )


class UserSimultaneousRingPersonalAddPhoneNumberRequest(OCIRequest):
    """
    Add a new phone number and set the answer confirmation setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=True,
    )


class UserSimultaneousRingPersonalDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's simultaneous ring personal service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalDeletePhoneNumberRequest(OCIRequest):
    """
    Delete the phone number specified.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's simultaneous ring personal service.
    The response is either a ``UserSimultaneousRingPersonalGetCriteriaResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalGetPhoneNumberRequest(OCIRequest):
    """
    Get the answer confirmation setting for the phone number specified.
    The response is either a ``UserSimultaneousRingPersonalGetPhoneNumberResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalGetRequest(OCIRequest):
    """
    Get the user's simultaneous ring service personal setting.
    The response is either a ``UserSimultaneousRingPersonalGetResponse()`` or an
    ``ErrorResponse()``.
    Replaced By ``UserSimultaneousRingPersonalGetRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalGetRequest14sp4(OCIRequest):
    """
    Get the user's simultaneous ring service personal setting.
    The response is either a ``UserSimultaneousRingPersonalGetResponse14sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalGetRequest17(OCIRequest):
    """
    Get the user's simultaneous ring personal service setting.
    The response is either a ``UserSimultaneousRingPersonalGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSimultaneousRingPersonalModifyPhoneNumberRequest(OCIRequest):
    """
    Modify the require confirmation setting for the destination.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=False,
    )


class UserSimultaneousRingPersonalModifyRequest14sp4(OCIRequest):
    """
    Modify the user's simultaneous ring personal service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "incoming_calls",
            "incomingCalls",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* incomingCalls
    incoming_calls = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_level",
            "deviceLevel",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceLevel
    device_level = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )


class UserSpeedDial100DeleteListRequest(OCIRequest):
    """
    Delete one or more speed dial 100 settings for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "speed_code",
            "speedCode",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* speedCode
    speed_code = Field(
        type=int,
        required=False,
    )


class UserSpeedDial100GetListRequest(OCIRequest):
    """
    Get the speed dial 100 settings for a user.
    The response is either a ``UserSpeedDial100GetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSpeedDial100GetListRequest17sp1(OCIRequest):
    """
    Get the speed dial 100 settings for a user.
    The response is either a ``UserSpeedDial100GetListResponse17sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserSpeedDial100GetRequest(OCIRequest):
    """
    Get speed dial 100 settings for a speed code.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "speed_code",
            "speedCode",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Required* speedCode
    speed_code = Field(
        type=int,
        required=True,
    )


class UserSpeedDial8GetListRequest(OCIRequest):
    """
    Get the speed dial 8 settings for a user.
    The response is either a ``UserSpeedDial8GetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserThirdPartyVoiceMailSupportGetRequest17(OCIRequest):
    """
    Request the user level data associated with Third-Party Voice Mail Support.
    The response is either a ``UserThirdPartyVoiceMailSupportGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserThirdPartyVoiceMailSupportModifyRequest(OCIRequest):
    """
    Modify the Third Party Voice Mail Support settings for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "busy_redirect_to_voice_mail",
            "busyRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "no_answer_redirect_to_voice_mail",
            "noAnswerRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "server_selection",
            "serverSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_server",
            "userServer",
            str,
            False,
            False,
            False,
        ),
        E(
            "mailbox_id_type",
            "mailboxIdType",
            str,
            False,
            False,
            False,
        ),
        E(
            "mailbox_url",
            "mailboxURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "always_redirect_to_voice_mail",
            "alwaysRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "out_of_primary_zone_redirect_to_voice_mail",
            "outOfPrimaryZoneRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* busyRedirectToVoiceMail
    busy_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* noAnswerRedirectToVoiceMail
    no_answer_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* serverSelection
    server_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userServer
    user_server = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mailboxIdType
    mailbox_id_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mailboxURL
    mailbox_url = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* alwaysRedirectToVoiceMail
    always_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* outOfPrimaryZoneRedirectToVoiceMail
    out_of_primary_zone_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )


class UserTimeScheduleDeleteRequest(OCIRequest):
    """
    Delete a user time schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserTimeScheduleGetRequest(OCIRequest):
    """
    Request to get a user time schedule.
    The response is either a ``UserTimeScheduleGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )


class UserTwoStageDialingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Two Stage Dialing.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_activation_with_user_addresses",
            "allowActivationWithUserAddresses",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowActivationWithUserAddresses
    allow_activation_with_user_addresses = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVideoAddOnGetRequest19(OCIRequest):
    """
    Get the user's Video Add-On service setting.
    The response is either a ``UserVideoAddOnGetResponse19()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserAddAliasListRequest(OCIRequest):
    """
    Add one or more voice mail aliases to a users voice message.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserDeleteAliasListRequest(OCIRequest):
    """
    Delete one or more voice mail aliases from a users voice message.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetAdvancedVoiceManagementRequest14sp3(OCIRequest):
    """
    Get the user's voice messaging advanced voice management service setting.
    The response is either a ``UserVoiceMessagingUserGetAdvancedVoiceManagementResponse14sp3()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetAliasListRequest(OCIRequest):
    """
    Get the voice mail aliases for a users voice message.
    The response is either a ``UserVoiceMessagingUserGetAliasListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetDistributionListRequest(OCIRequest):
    """
    Get a voice mail distribution list for a users voice message.
    The response is either ``UserVoiceMessagingUserGetDistributionListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "list_id",
            "listId",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Required* listId
    list_id = Field(
        type=int,
        required=True,
    )


class UserVoiceMessagingUserGetGreetingRequest13mp16(OCIRequest):
    """
    Get the user's voice messaging greeting information.
    The response is either a ``UserVoiceMessagingUserGetGreetingResponse13mp16()`` or
    an ``ErrorResponse()``.
    Replaced By ``UserVoiceMessagingUserGetGreetingRequest16()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetGreetingRequest18(OCIRequest):
    """
    Get the user's voice messaging greeting information.
    The response is either a ``UserVoiceMessagingUserGetGreetingResponse18()`` or an
    ``ErrorResponse()``.

    Replaced by ``UserVoiceMessagingUserGetGreetingRequest18sp1()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetGreetingRequest18sp1(OCIRequest):
    """
    Get the user's voice messaging greeting information.
    The response is either a ``UserVoiceMessagingUserGetGreetingResponse18sp1()`` or
    an ``ErrorResponse()``.

    Replaced by ``UserVoiceMessagingUserGetGreetingRequest20()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetGreetingRequest20(OCIRequest):
    """
    Get the user's voice messaging greeting information.
    The response is either a ``UserVoiceMessagingUserGetGreetingResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetVoiceManagementRequest17(OCIRequest):
    """
    Get the user's voice messaging voice management service settings.
    The response is either a ``UserVoiceMessagingUserGetVoiceManagementResponse17()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetVoicePortalPasswordInfoRequest(OCIRequest):
    """
    Request the user's voice portal password information.
    The response is either a ``UserVoiceMessagingUserGetVoicePortalPasswordInfoResponse()``
    or an ``ErrorResponse()``.
    Replaced By ``UserPortalPasscodeGetInfoRequest()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetVoicePortalRequest(OCIRequest):
    """
    Get the user's voice messaging voice portal settings.
    The response is either a ``UserVoiceMessagingUserGetVoicePortalResponse()`` or an
    ``ErrorResponse()``.
    Replaced By ``UserVoiceMessagingUserGetVoicePortalRequest16()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetVoicePortalRequest16(OCIRequest):
    """
    Get the user's voice messaging voice portal settings.
    The response is either a ``UserVoiceMessagingUserGetVoicePortalResponse16()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserGetVoicePortalRequest20(OCIRequest):
    """
    Get the user's voice messaging voice portal settings.
    The response is either a ``UserVoiceMessagingUserGetVoicePortalResponse20()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoiceMessagingUserModifyAdvancedVoiceManagementRequest(OCIRequest):
    """
    Modify the user's voice messaging advanced voice management service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mail_server_selection",
            "mailServerSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_mail_server_email_address",
            "groupMailServerEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_mail_server_user_id",
            "groupMailServerUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_mail_server_password",
            "groupMailServerPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_group_default_mail_server_full_mailbox_limit",
            "useGroupDefaultMailServerFullMailboxLimit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "group_mail_server_full_mailbox_limit",
            "groupMailServerFullMailboxLimit",
            int,
            False,
            True,
            False,
        ),
        E(
            "personal_mail_server_net_address",
            "personalMailServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "personal_mail_server_protocol",
            "personalMailServerProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "personal_mail_server_real_delete_for_imap",
            "personalMailServerRealDeleteForImap",
            bool,
            False,
            False,
            False,
        ),
        E(
            "personal_mail_server_email_address",
            "personalMailServerEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "personal_mail_server_user_id",
            "personalMailServerUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "personal_mail_server_password",
            "personalMailServerPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* mailServerSelection
    mail_server_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupMailServerEmailAddress
    group_mail_server_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupMailServerUserId
    group_mail_server_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupMailServerPassword
    group_mail_server_password = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* useGroupDefaultMailServerFullMailboxLimit
    use_group_default_mail_server_full_mailbox_limit = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* groupMailServerFullMailboxLimit
    group_mail_server_full_mailbox_limit = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* personalMailServerNetAddress
    personal_mail_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* personalMailServerProtocol
    personal_mail_server_protocol = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* personalMailServerRealDeleteForImap
    personal_mail_server_real_delete_for_imap = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* personalMailServerEmailAddress
    personal_mail_server_email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* personalMailServerUserId
    personal_mail_server_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* personalMailServerPassword
    personal_mail_server_password = Field(
        type=str,
        required=False,
    )


class UserVoiceMessagingUserModifyVoiceManagementRequest(OCIRequest):
    """
    Modify the user's voice messaging voice management service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "processing",
            "processing",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_message_delivery_email_address",
            "voiceMessageDeliveryEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_phone_message_waiting_indicator",
            "usePhoneMessageWaitingIndicator",
            bool,
            False,
            False,
            False,
        ),
        E(
            "send_voice_message_notify_email",
            "sendVoiceMessageNotifyEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_message_notify_email_address",
            "voiceMessageNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "send_carbon_copy_voice_message",
            "sendCarbonCopyVoiceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_message_carbon_copy_email_address",
            "voiceMessageCarbonCopyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_on_zero_to_phone_number",
            "transferOnZeroToPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "always_redirect_to_voice_mail",
            "alwaysRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "busy_redirect_to_voice_mail",
            "busyRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "no_answer_redirect_to_voice_mail",
            "noAnswerRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "out_of_primary_zone_redirect_to_voice_mail",
            "outOfPrimaryZoneRedirectToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* processing
    processing = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* voiceMessageDeliveryEmailAddress
    voice_message_delivery_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* usePhoneMessageWaitingIndicator
    use_phone_message_waiting_indicator = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* sendVoiceMessageNotifyEmail
    send_voice_message_notify_email = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* voiceMessageNotifyEmailAddress
    voice_message_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* sendCarbonCopyVoiceMessage
    send_carbon_copy_voice_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* voiceMessageCarbonCopyEmailAddress
    voice_message_carbon_copy_email_address = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* transferOnZeroToPhoneNumber
    transfer_on_zero_to_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* alwaysRedirectToVoiceMail
    always_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* busyRedirectToVoiceMail
    busy_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* noAnswerRedirectToVoiceMail
    no_answer_redirect_to_voice_mail = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* outOfPrimaryZoneRedirectToVoiceMail
    out_of_primary_zone_redirect_to_voice_mail = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "old_password",
            "oldPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* oldPassword
    old_password = Field(
        type=str,
        required=False,
    )
    #: str: *Required* newPassword
    new_password = Field(
        type=str,
        required=True,
    )


class UserVoicePortalCallingGetRequest(OCIRequest):
    """
    Request the user level data associated with Voice Portal Calling.
    The response is either a ``UserVoicePortalCallingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserVoicePortalCallingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Voice Portal Calling.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )


class UserZoneCallingRestrictionsGetRequest(OCIRequest):
    """
    Gets the home zone for a user
    The response is either a ``UserZoneCallingRestrictionsGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )


class UserZoneCallingRestrictionsModifyRequest(OCIRequest):
    """
    Modify the home zone for a user
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_name",
            "homeZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* homeZoneName
    home_zone_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_profile_name",
            "newProfileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "profile_description",
            "profileDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_yellow",
            "thresholdAverageBusyInTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_red",
            "thresholdAverageBusyInTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_yellow",
            "thresholdAverageBusyOutTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_red",
            "thresholdAverageBusyOutTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_yellow",
            "thresholdAverageWrapUpTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_red",
            "thresholdAverageWrapUpTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_notification_email",
            "enableNotificationEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "notification_email_address_list",
            "notificationEmailAddressList",
            OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
            True,
            False,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newProfileName
    new_profile_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* profileDescription
    profile_description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeYellow
    threshold_current_call_state_idle_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeRed
    threshold_current_call_state_idle_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeYellow
    threshold_current_call_state_on_call_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeRed
    threshold_current_call_state_on_call_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeYellow
    threshold_current_agent_state_unavailable_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeRed
    threshold_current_agent_state_unavailable_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeYellow
    threshold_average_busy_in_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeRed
    threshold_average_busy_in_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeYellow
    threshold_average_busy_out_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeRed
    threshold_average_busy_out_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeYellow
    threshold_average_wrap_up_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeRed
    threshold_average_wrap_up_time_red = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableNotificationEmail
    enable_notification_email = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList: *Optional*
    #: notificationEmailAddressList
    notification_email_address_list = Field(
        type=OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_agent_unavailable_codes",
            "enableAgentUnavailableCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_dnd",
            "defaultAgentUnavailableCodeOnDND",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_personal_calls",
            "defaultAgentUnavailableCodeOnPersonalCalls",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_consecutive_bounces",
            "defaultAgentUnavailableCodeOnConsecutiveBounces",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_not_reachable",
            "defaultAgentUnavailableCodeOnNotReachable",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_use_of_agent_unavailable_codes",
            "forceUseOfAgentUnavailableCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code",
            "defaultAgentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "code_state_list",
            "codeStateList",
            OCI.CallCenterAgentUnavailableCodeStateModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableAgentUnavailableCodes
    enable_agent_unavailable_codes = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnDND
    default_agent_unavailable_code_on_dnd = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnPersonalCalls
    default_agent_unavailable_code_on_personal_calls = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnConsecutiveBounces
    default_agent_unavailable_code_on_consecutive_bounces = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnNotReachable
    default_agent_unavailable_code_on_not_reachable = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* forceUseOfAgentUnavailableCodes
    force_use_of_agent_unavailable_codes = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCode
    default_agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAgentUnavailableCodeStateModify: *Optional* codeStateList
    code_state_list = Field(
        type=OCI.CallCenterAgentUnavailableCodeStateModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_disposition_code_activation",
            "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallDispositionCodeActivation: *Optional* callDispositionCodeActivation
    call_disposition_code_activation = Field(
        type=OCI.CallDispositionCodeActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_premium_only",
            "isPremiumOnly",
            bool,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_name",
            "searchCriteriaCallCenterName",
            OCI.SearchCriteriaCallCenterName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isPremiumOnly
    is_premium_only = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterName: *Optional* searchCriteriaCallCenterName
    search_criteria_call_center_name = Field(
        type=OCI.SearchCriteriaCallCenterName,
        required=False,
    )


class EnterpriseCallCenterEnhancedReportingBrandingModifyRequest(OCIRequest):
    """
    Request to modify the enterprise branding configuration.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "branding_choice",
            "brandingChoice",
            str,
            False,
            False,
            False,
        ),
        E(
            "branding_file",
            "brandingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* brandingChoice
    branding_choice = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* brandingFile
    branding_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class EnterpriseCallCenterEnhancedReportingReportTemplateAddRequest(OCIRequest):
    """
    Request to add an Enterprise level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "data_template",
            "dataTemplate",
            str,
            False,
            True,
            False,
        ),
        E(
            "filter_number",
            "filterNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "xslt_template",
            "xsltTemplate",
            OCI.LabeledFileResource,
            True,
            True,
            False,
        ),
        E(
            "scope",
            "scope",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_realtime_report",
            "isRealtimeReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_completion_threshold_param",
            "callCompletionThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_param",
            "shortDurationThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_param",
            "serviceLevelThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_inclusions_param",
            "serviceLevelInclusionsParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_objective_threshold_param",
            "serviceLevelObjectiveThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_param",
            "abandonedCallThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_param_number",
            "serviceLevelThresholdParamNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_param_number",
            "abandonedCallThresholdParamNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "filter_value",
            "filterValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* dataTemplate
    data_template = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* filterNumber
    filter_number = Field(
        type=int,
        required=False,
    )
    #: OCI.LabeledFileResource: *Required* xsltTemplate
    xslt_template = Field(
        type=OCI.LabeledFileResource,
        required=True,
    )
    #: str: *Required* scope
    scope = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnabled
    is_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* isRealtimeReport
    is_realtime_report = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callCompletionThresholdParam
    call_completion_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* shortDurationThresholdParam
    short_duration_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelThresholdParam
    service_level_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelInclusionsParam
    service_level_inclusions_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelObjectiveThresholdParam
    service_level_objective_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* abandonedCallThresholdParam
    abandoned_call_threshold_param = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serviceLevelThresholdParamNumber
    service_level_threshold_param_number = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* abandonedCallThresholdParamNumber
    abandoned_call_threshold_param_number = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* filterValue
    filter_value = Field(
        type=str,
        required=False,
    )


class EnterpriseCallCenterEnhancedReportingReportTemplateModifyRequest(OCIRequest):
    """
    Request to modify an enterprise level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "xslt_template",
            "xsltTemplate",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "scope",
            "scope",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_realtime_report",
            "isRealtimeReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "filter_number",
            "filterNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "filter_value",
            "filterValue",
            OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* xsltTemplate
    xslt_template = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* scope
    scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isEnabled
    is_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isRealtimeReport
    is_realtime_report = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* filterNumber
    filter_number = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList: *Optional*
    #: filterValue
    filter_value = Field(
        type=OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
        required=False,
    )


class EnterpriseCallCenterModifyRoutingPolicyRequest(OCIRequest):
    """
    Modify the enterprise call center routing policy.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "routing_policy",
            "routingPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "routing_priority_order",
            "routingPriorityOrder",
            OCI.CallCenterRoutingPriorityOrder,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routingPolicy
    routing_policy = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterRoutingPriorityOrder: *Optional* routingPriorityOrder
    routing_priority_order = Field(
        type=OCI.CallCenterRoutingPriorityOrder,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry",
            "entry",
            OCI.PhoneListEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.PhoneListEntry: *Required* entry
    entry = Field(
        type=OCI.PhoneListEntry,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_enterprise_common_phone_list_name",
            "searchCriteriaEnterpriseCommonPhoneListName",
            OCI.SearchCriteriaEnterpriseCommonPhoneListName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_enterprise_common_phone_list_number",
            "searchCriteriaEnterpriseCommonPhoneListNumber",
            OCI.SearchCriteriaEnterpriseCommonPhoneListNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaEnterpriseCommonPhoneListName: *Optional*
    #: searchCriteriaEnterpriseCommonPhoneListName
    search_criteria_enterprise_common_phone_list_name = Field(
        type=OCI.SearchCriteriaEnterpriseCommonPhoneListName,
        required=False,
    )
    #: OCI.SearchCriteriaEnterpriseCommonPhoneListNumber: *Optional*
    #: searchCriteriaEnterpriseCommonPhoneListNumber
    search_criteria_enterprise_common_phone_list_number = Field(
        type=OCI.SearchCriteriaEnterpriseCommonPhoneListNumber,
        required=False,
    )


class EnterpriseDepartmentAddRequest(OCIRequest):
    """
    Add a department to enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
        E(
            "parent_department_key",
            "parentDepartmentKey",
            OCI.EnterpriseDepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )
    #: OCI.EnterpriseDepartmentKey: *Optional* parentDepartmentKey
    parent_department_key = Field(
        type=OCI.EnterpriseDepartmentKey,
        required=False,
    )


class EnterpriseDepartmentModifyRequest(OCIRequest):
    """
    Modify a department of an enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_department_name",
            "newDepartmentName",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_parent_department_key",
            "newParentDepartmentKey",
            OCI.EnterpriseDepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newDepartmentName
    new_department_name = Field(
        type=str,
        required=False,
    )
    #: OCI.EnterpriseDepartmentKey: *Optional* newParentDepartmentKey
    new_parent_department_key = Field(
        type=OCI.EnterpriseDepartmentKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_trunk_group_name",
            "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaTrunkGroupName: *Optional* searchCriteriaTrunkGroupName
    search_criteria_trunk_group_name = Field(
        type=OCI.SearchCriteriaTrunkGroupName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_level",
            "searchCriteriaExactDeviceLevel",
            OCI.SearchCriteriaExactDeviceLevel,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceLevel: *Optional* searchCriteriaExactDeviceLevel
    search_criteria_exact_device_level = Field(
        type=OCI.SearchCriteriaExactDeviceLevel,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_virtual_on_net_call_type_name",
            "searchCriteriaExactVirtualOnNetCallTypeName",
            OCI.SearchCriteriaExactVirtualOnNetCallTypeName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactVirtualOnNetCallTypeName: *Optional*
    #: searchCriteriaExactVirtualOnNetCallTypeName
    search_criteria_exact_virtual_on_net_call_type_name = Field(
        type=OCI.SearchCriteriaExactVirtualOnNetCallTypeName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "location_dialing_code",
            "locationDialingCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "min_extension_length",
            "minExtensionLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_extension_length",
            "maxExtensionLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_group_id",
            "routeGroupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "policy_selection",
            "policySelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "digit_manipulation",
            "digitManipulation",
            OCI.EnterpriseVoiceVPNDigitManipulation,
            True,
            False,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locationDialingCode
    location_dialing_code = Field(
        type=str,
        required=True,
    )
    #: int: *Required* minExtensionLength
    min_extension_length = Field(
        type=int,
        required=True,
    )
    #: int: *Required* maxExtensionLength
    max_extension_length = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* routeGroupId
    route_group_id = Field(
        type=str,
        required=False,
    )
    #: str: *Required* policySelection
    policy_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.EnterpriseVoiceVPNDigitManipulation: *Optional* digitManipulation
    digit_manipulation = Field(
        type=OCI.EnterpriseVoiceVPNDigitManipulation,
        required=False,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_policy_selection",
            "searchCriteriaExactPolicySelection",
            OCI.SearchCriteriaExactPolicySelection,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExactPolicySelection: *Optional*
    #: searchCriteriaExactPolicySelection
    search_criteria_exact_policy_selection = Field(
        type=OCI.SearchCriteriaExactPolicySelection,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "location_dialing_code",
            "locationDialingCode",
            str,
            False,
            True,
            False,
        ),
        E(
            "min_extension_length",
            "minExtensionLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_extension_length",
            "maxExtensionLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_group_id",
            "routeGroupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "policy_selection",
            "policySelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "digit_manipulation",
            "digitManipulation",
            OCI.EnterpriseVoiceVPNDigitManipulation,
            True,
            False,
            False,
        ),
        E(
            "treatment_id",
            "treatmentId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* locationDialingCode
    location_dialing_code = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* minExtensionLength
    min_extension_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxExtensionLength
    max_extension_length = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* routeGroupId
    route_group_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* policySelection
    policy_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.EnterpriseVoiceVPNDigitManipulation: *Optional* digitManipulation
    digit_manipulation = Field(
        type=OCI.EnterpriseVoiceVPNDigitManipulation,
        required=False,
    )
    #: str: *Optional* treatmentId
    treatment_id = Field(
        type=str,
        required=False,
    )


class GroupAccessDeviceAddRequest14(OCIRequest):
    """
    Request to add a group access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "outbound_proxy_server_net_address",
            "outboundProxyServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "stun_server_net_address",
            "stunServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "serial_number",
            "serialNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_url",
            "mobilityManagerProvisioningURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_custom_user_name_password",
            "useCustomUserNamePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "access_device_credentials",
            "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* outboundProxyServerNetAddress
    outbound_proxy_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* stunServerNetAddress
    stun_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serialNumber
    serial_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningURL
    mobility_manager_provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningUserName
    mobility_manager_provisioning_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningPassword
    mobility_manager_provisioning_password = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultOriginatingServiceKey
    mobility_manager_default_originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultTerminatingServiceKey
    mobility_manager_default_terminating_service_key = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useCustomUserNamePassword
    use_custom_user_name_password = Field(
        type=bool,
        required=False,
    )
    #: OCI.DeviceManagementUserNamePassword16: *Optional* accessDeviceCredentials
    access_device_credentials = Field(
        type=OCI.DeviceManagementUserNamePassword16,
        required=False,
    )


class GroupAccessDeviceAvailablePortGetListRequest(OCIRequest):
    """
    Request to get the list of available ports in a device.
    The response is either ``GroupAccessDeviceAvailablePortGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )


class GroupAccessDeviceFileModifyRequest(OCIRequest):
    """
    Request to modify a specified group access device file.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``GroupAccessDeviceFileModifyRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "extended_capture_enabled",
            "extendedCaptureEnabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Optional* extendedCaptureEnabled
    extended_capture_enabled = Field(
        type=bool,
        required=False,
    )


class GroupAccessDeviceGetListRequest(OCIRequest):
    """
    Requests the list of access devices in a group.
    The response is either ``GroupAccessDeviceGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_access_device_version",
            "searchCriteriaAccessDeviceVersion",
            OCI.SearchCriteriaAccessDeviceVersion,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaAccessDeviceVersion: *Optional*
    #: searchCriteriaAccessDeviceVersion
    search_criteria_access_device_version = Field(
        type=OCI.SearchCriteriaAccessDeviceVersion,
        required=False,
    )


class GroupAccessDeviceModifyRequest14(OCIRequest):
    """
    Request to modify a specified group access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "outbound_proxy_server_net_address",
            "outboundProxyServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "stun_server_net_address",
            "stunServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "serial_number",
            "serialNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "configuration_mode",
            "configurationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "configuration_file",
            "configurationFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_url",
            "mobilityManagerProvisioningURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_custom_user_name_password",
            "useCustomUserNamePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "access_device_credentials",
            "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* outboundProxyServerNetAddress
    outbound_proxy_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* stunServerNetAddress
    stun_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serialNumber
    serial_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* configurationMode
    configuration_mode = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* configurationFile
    configuration_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningURL
    mobility_manager_provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningUserName
    mobility_manager_provisioning_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningPassword
    mobility_manager_provisioning_password = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultOriginatingServiceKey
    mobility_manager_default_originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultTerminatingServiceKey
    mobility_manager_default_terminating_service_key = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useCustomUserNamePassword
    use_custom_user_name_password = Field(
        type=bool,
        required=False,
    )
    #: OCI.DeviceManagementUserNamePassword16: *Optional* accessDeviceCredentials
    access_device_credentials = Field(
        type=OCI.DeviceManagementUserNamePassword16,
        required=False,
    )


class GroupAccountAuthorizationCodesAddListRequest(OCIRequest):
    """
    Add a list of account/authorization codes to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code_entry",
            "codeEntry",
            OCI.AccountAuthorizationCodeEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccountAuthorizationCodeEntry: *Required* codeEntry
    code_entry = Field(
        type=OCI.AccountAuthorizationCodeEntry,
        required=True,
    )


class GroupAccountAuthorizationCodesModifyRequest(OCIRequest):
    """
    Change the group's account/authorization codes setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code_type",
            "codeType",
            str,
            False,
            False,
            False,
        ),
        E(
            "number_of_digits",
            "numberOfDigits",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_local_and_toll_free_calls",
            "allowLocalAndTollFreeCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mandatory_usage_user_id_list",
            "mandatoryUsageUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "optional_usage_user_id_list",
            "optionalUsageUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* codeType
    code_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* numberOfDigits
    number_of_digits = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowLocalAndTollFreeCalls
    allow_local_and_toll_free_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* mandatoryUsageUserIdList
    mandatory_usage_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* optionalUsageUserIdList
    optional_usage_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class GroupAddRequest(OCIRequest):
    """
    Add a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "default_domain",
            "defaultDomain",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_limit",
            "userLimit",
            int,
            False,
            True,
            False,
        ),
        E(
            "group_name",
            "groupName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_name",
            "callingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "location_dialing_code",
            "locationDialingCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "contact",
            "contact",
            OCI.Contact,
            True,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* defaultDomain
    default_domain = Field(
        type=str,
        required=True,
    )
    #: int: *Required* userLimit
    user_limit = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* groupName
    group_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdName
    calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* locationDialingCode
    location_dialing_code = Field(
        type=str,
        required=False,
    )
    #: OCI.Contact: *Optional* contact
    contact = Field(
        type=OCI.Contact,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )


class GroupAnnouncementFileAddRequest(OCIRequest):
    """
    Add an announcement to the group announcement repository
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_name",
            "announcementFileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file",
            "announcementFile",
            OCI.LabeledMediaFileResource,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* announcementFileName
    announcement_file_name = Field(
        type=str,
        required=True,
    )
    #: OCI.LabeledMediaFileResource: *Required* announcementFile
    announcement_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=True,
    )


class GroupAnnouncementFileDeleteListRequest(OCIRequest):
    """
    Delete one or more announcements from the group announcement repository
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_key",
            "announcementFileKey",
            OCI.AnnouncementFileKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileKey: *Required* announcementFileKey
    announcement_file_key = Field(
        type=OCI.AnnouncementFileKey,
        required=True,
    )


class GroupAnnouncementFileGetListRequest(OCIRequest):
    """
    Get the list of available announcement files for a Group.
    The response is either a ``GroupAnnouncementFileGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_type",
            "announcementFileType",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_announcement_table",
            "includeAnnouncementTable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_announcement_file_name",
            "searchCriteriaAnnouncementFileName",
            OCI.SearchCriteriaAnnouncementFileName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementFileType
    announcement_file_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* includeAnnouncementTable
    include_announcement_table = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaAnnouncementFileName: *Optional*
    #: searchCriteriaAnnouncementFileName
    search_criteria_announcement_file_name = Field(
        type=OCI.SearchCriteriaAnnouncementFileName,
        required=False,
    )


class GroupAnnouncementFileGetRequest(OCIRequest):
    """
    Request to get the announcement repository file information.
    The response is either ``GroupAnnouncementFileGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_key",
            "announcementFileKey",
            OCI.AnnouncementFileKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileKey: *Required* announcementFileKey
    announcement_file_key = Field(
        type=OCI.AnnouncementFileKey,
        required=True,
    )


class GroupAnnouncementFileModifyRequest(OCIRequest):
    """
    Modify an existing announcement in the group repository
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_key",
            "announcementFileKey",
            OCI.AnnouncementFileKey,
            True,
            True,
            False,
        ),
        E(
            "new_announcement_file_name",
            "newAnnouncementFileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "announcement_file",
            "announcementFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileKey: *Required* announcementFileKey
    announcement_file_key = Field(
        type=OCI.AnnouncementFileKey,
        required=True,
    )
    #: str: *Optional* newAnnouncementFileName
    new_announcement_file_name = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* announcementFile
    announcement_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )


class GroupAutoAttendantModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Auto Attendant instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupBroadWorksAnywhereModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of BroadWorks Anywhere instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "config_file",
            "configFile",
            OCI.FileResource,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Required* configFile
    config_file = Field(
        type=OCI.FileResource,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_active_calls_allowed",
            "maxActiveCallsAllowed",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_incoming_active_calls_allowed",
            "maxIncomingActiveCallsAllowed",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_active_calls_allowed",
            "maxOutgoingActiveCallsAllowed",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group_for_new_users",
            "becomeDefaultGroupForNewUsers",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_id_list",
            "userIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxActiveCallsAllowed
    max_active_calls_allowed = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxIncomingActiveCallsAllowed
    max_incoming_active_calls_allowed = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingActiveCallsAllowed
    max_outgoing_active_calls_allowed = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* becomeDefaultGroupForNewUsers
    become_default_group_for_new_users = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* userIdList
    user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_skill_list",
            "agentSkillList",
            OCI.CallCenterSkillAgentList,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterSkillAgentList: *Required* agentSkillList
    agent_skill_list = Field(
        type=OCI.CallCenterSkillAgentList,
        required=True,
    )


class GroupCallCenterAddDNISRequest(OCIRequest):
    """
    Add a Call Center DNIS
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "dnis_phone_number",
            "dnisPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_clid_settings",
            "useCustomCLIDSettings",
            bool,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_dnis_announcement_settings",
            "useCustomDnisAnnouncementSettings",
            bool,
            False,
            True,
            False,
        ),
        E(
            "priority",
            "priority",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_outgoing_acd_call",
            "allowOutgoingACDCall",
            bool,
            False,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: str: *Optional* dnisPhoneNumber
    dnis_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* useCustomCLIDSettings
    use_custom_clid_settings = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* useCustomDnisAnnouncementSettings
    use_custom_dnis_announcement_settings = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* priority
    priority = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allowOutgoingACDCall
    allow_outgoing_acd_call = Field(
        type=bool,
        required=True,
    )


class GroupCallCenterAgentThresholdProfileModifyRequest(OCIRequest):
    """
    Modifies an existing Call Center Agent Threshold Profile in the Group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_profile_name",
            "newProfileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "profile_description",
            "profileDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_yellow",
            "thresholdAverageBusyInTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_in_time_red",
            "thresholdAverageBusyInTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_yellow",
            "thresholdAverageBusyOutTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_busy_out_time_red",
            "thresholdAverageBusyOutTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_yellow",
            "thresholdAverageWrapUpTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_wrap_up_time_red",
            "thresholdAverageWrapUpTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_notification_email",
            "enableNotificationEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "notification_email_address_list",
            "notificationEmailAddressList",
            OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
            True,
            False,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profileName
    profile_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newProfileName
    new_profile_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* profileDescription
    profile_description = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeYellow
    threshold_current_call_state_idle_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateIdleTimeRed
    threshold_current_call_state_idle_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeYellow
    threshold_current_call_state_on_call_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallStateOnCallTimeRed
    threshold_current_call_state_on_call_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeYellow
    threshold_current_agent_state_unavailable_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentAgentStateUnavailableTimeRed
    threshold_current_agent_state_unavailable_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeYellow
    threshold_average_busy_in_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyInTimeRed
    threshold_average_busy_in_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeYellow
    threshold_average_busy_out_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageBusyOutTimeRed
    threshold_average_busy_out_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeYellow
    threshold_average_wrap_up_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageWrapUpTimeRed
    threshold_average_wrap_up_time_red = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableNotificationEmail
    enable_notification_email = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList: *Optional*
    #: notificationEmailAddressList
    notification_email_address_list = Field(
        type=OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_agent_unavailable_codes",
            "enableAgentUnavailableCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_dnd",
            "defaultAgentUnavailableCodeOnDND",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_personal_calls",
            "defaultAgentUnavailableCodeOnPersonalCalls",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_consecutive_bounces",
            "defaultAgentUnavailableCodeOnConsecutiveBounces",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code_on_not_reachable",
            "defaultAgentUnavailableCodeOnNotReachable",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_use_of_agent_unavailable_codes",
            "forceUseOfAgentUnavailableCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_agent_unavailable_code",
            "defaultAgentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "code_state_list",
            "codeStateList",
            OCI.CallCenterAgentUnavailableCodeStateModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableAgentUnavailableCodes
    enable_agent_unavailable_codes = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnDND
    default_agent_unavailable_code_on_dnd = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnPersonalCalls
    default_agent_unavailable_code_on_personal_calls = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnConsecutiveBounces
    default_agent_unavailable_code_on_consecutive_bounces = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCodeOnNotReachable
    default_agent_unavailable_code_on_not_reachable = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* forceUseOfAgentUnavailableCodes
    force_use_of_agent_unavailable_codes = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultAgentUnavailableCode
    default_agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAgentUnavailableCodeStateModify: *Optional* codeStateList
    code_state_list = Field(
        type=OCI.CallCenterAgentUnavailableCodeStateModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_disposition_code_activation",
            "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallDispositionCodeActivation: *Optional* callDispositionCodeActivation
    call_disposition_code_activation = Field(
        type=OCI.CallDispositionCodeActivation,
        required=False,
    )


class GroupCallCenterCurrentAndPastAgentGetListRequest(OCIRequest):
    """
    Request to get all the current and past agents for the group.
    The response is either ``GroupCallCenterCurrentAndPastAgentGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class GroupCallCenterCurrentAndPastCallCenterGetListRequest(OCIRequest):
    """
    Request to get all the current and past call centers for the group.
    The response is either ``GroupCallCenterCurrentAndPastCallCenterGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_premium_only",
            "isPremiumOnly",
            bool,
            False,
            False,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_name",
            "searchCriteriaCallCenterName",
            OCI.SearchCriteriaCallCenterName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isPremiumOnly
    is_premium_only = Field(
        type=bool,
        required=False,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterName: *Optional* searchCriteriaCallCenterName
    search_criteria_call_center_name = Field(
        type=OCI.SearchCriteriaCallCenterName,
        required=False,
    )


class GroupCallCenterDeleteDNISRequest(OCIRequest):
    """
    Delete a call center's DNIS.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterEnhancedReportingBrandingModifyRequest(OCIRequest):
    """
    Request to modify the group branding configuration.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "branding_choice",
            "brandingChoice",
            str,
            False,
            False,
            False,
        ),
        E(
            "branding_file",
            "brandingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* brandingChoice
    branding_choice = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* brandingFile
    branding_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class GroupCallCenterEnhancedReportingReportTemplateAddRequest(OCIRequest):
    """
    Request to add a group level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "data_template",
            "dataTemplate",
            str,
            False,
            True,
            False,
        ),
        E(
            "filter_number",
            "filterNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "xslt_template",
            "xsltTemplate",
            OCI.LabeledFileResource,
            True,
            True,
            False,
        ),
        E(
            "scope",
            "scope",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_realtime_report",
            "isRealtimeReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_completion_threshold_param",
            "callCompletionThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_param",
            "shortDurationThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_param",
            "serviceLevelThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_inclusions_param",
            "serviceLevelInclusionsParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_objective_threshold_param",
            "serviceLevelObjectiveThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_param",
            "abandonedCallThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_param_number",
            "serviceLevelThresholdParamNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_param_number",
            "abandonedCallThresholdParamNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "filter_value",
            "filterValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* dataTemplate
    data_template = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* filterNumber
    filter_number = Field(
        type=int,
        required=False,
    )
    #: OCI.LabeledFileResource: *Required* xsltTemplate
    xslt_template = Field(
        type=OCI.LabeledFileResource,
        required=True,
    )
    #: str: *Required* scope
    scope = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnabled
    is_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* isRealtimeReport
    is_realtime_report = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callCompletionThresholdParam
    call_completion_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* shortDurationThresholdParam
    short_duration_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelThresholdParam
    service_level_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelInclusionsParam
    service_level_inclusions_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelObjectiveThresholdParam
    service_level_objective_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* abandonedCallThresholdParam
    abandoned_call_threshold_param = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serviceLevelThresholdParamNumber
    service_level_threshold_param_number = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* abandonedCallThresholdParamNumber
    abandoned_call_threshold_param_number = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* filterValue
    filter_value = Field(
        type=str,
        required=False,
    )


class GroupCallCenterEnhancedReportingReportTemplateModifyRequest(OCIRequest):
    """
    Request to modify a group level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "xslt_template",
            "xsltTemplate",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "scope",
            "scope",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_realtime_report",
            "isRealtimeReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "filter_number",
            "filterNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "filter_value",
            "filterValue",
            OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* xsltTemplate
    xslt_template = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* scope
    scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isEnabled
    is_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isRealtimeReport
    is_realtime_report = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* filterNumber
    filter_number = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList: *Optional*
    #: filterValue
    filter_value = Field(
        type=OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
        required=False,
    )


class GroupCallCenterGetDNISAgentListRequest(OCIRequest):
    """
    Get a list of agent who selected the DNIS as the outgoing call.
    The response is either ``GroupCallCenterGetDNISAgentListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterGetDNISAnnouncementRequest(OCIRequest):
    """
    Get a call center's DNIS Announcements
    The response is either a ``GroupCallCenterGetDNISAnnouncementRequest()`` or an
    ``ErrorResponse()``.

    Replaced by ``GroupCallCenterGetDNISAnnouncementRequest17sp4()``
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterGetDNISAnnouncementRequest17sp4(OCIRequest):
    """
    Get a call center's DNIS Announcements
    The response is either a ``GroupCallCenterGetDNISAnnouncementRequest17sp4()`` or
    an ``ErrorResponse()``.

    Replaced By ``GroupCallCenterGetDNISAnnouncementRequest19()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterGetDNISAnnouncementRequest19(OCIRequest):
    """
    Get a call center's DNIS Announcements
    The response is either a ``GroupCallCenterGetDNISAnnouncementRequest19()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterGetDNISAnnouncementRequest20(OCIRequest):
    """
    Get a call center's DNIS Announcements
    The response is either a ``GroupCallCenterGetDNISAnnouncementRequest20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterGetDNISRequest(OCIRequest):
    """
    Get a call center's DNIS.
    The response is either a ``GroupCallCenterGetDNISRequest()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupCallCenterGetInstanceStatisticsRequest14sp9(OCIRequest):
    """
    Get Call Center queue and agent statistics.
    The response is either ``GroupCallCenterGetInstanceStatisticsResponse14sp9()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "statistics_range",
            "statisticsRange",
            OCI.CallCenterStatisticsRange,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterStatisticsRange: *Required* statisticsRange
    statistics_range = Field(
        type=OCI.CallCenterStatisticsRange,
        required=True,
    )


class GroupCallCenterModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Call Center instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupCallCenterModifyAnnouncementRequest(OCIRequest):
    """
    Modify a call center's announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entrance_message_selection",
            "entranceMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file",
            "entranceMessageAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_video_file",
            "entranceMessageVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_selection",
            "periodicComfortMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file",
            "periodicComfortMessageAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file",
            "periodicComfortMessageVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "on_hold_message_selection",
            "onHoldMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "on_hold_message_audio_file",
            "onHoldMessageAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "on_hold_message_video_file",
            "onHoldMessageVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* entranceMessageSelection
    entrance_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* entranceMessageAudioFile
    entrance_message_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* entranceMessageVideoFile
    entrance_message_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* periodicComfortMessageSelection
    periodic_comfort_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* periodicComfortMessageAudioFile
    periodic_comfort_message_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* periodicComfortMessageVideoFile
    periodic_comfort_message_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* onHoldMessageSelection
    on_hold_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* onHoldMessageAudioFile
    on_hold_message_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* onHoldMessageVideoFile
    on_hold_message_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class GroupCallCenterModifyAnnouncementRequest14sp6(OCIRequest):
    """
    Modify a call center's announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By ``GroupCallCenterModifyAnnouncementRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entrance_message_selection",
            "entranceMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file",
            "entranceMessageAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_video_file",
            "entranceMessageVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_selection",
            "periodicComfortMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file",
            "periodicComfortMessageAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file",
            "periodicComfortMessageVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "on_hold_source",
            "onHoldSource",
            OCI.CallCenterMusicOnHoldSourceModify,
            True,
            False,
            False,
        ),
        E(
            "on_hold_use_alternate_source_for_internal_calls",
            "onHoldUseAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "on_hold_internal_source",
            "onHoldInternalSource",
            OCI.CallCenterMusicOnHoldSourceModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* entranceMessageSelection
    entrance_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* entranceMessageAudioFile
    entrance_message_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* entranceMessageVideoFile
    entrance_message_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* periodicComfortMessageSelection
    periodic_comfort_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* periodicComfortMessageAudioFile
    periodic_comfort_message_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* periodicComfortMessageVideoFile
    periodic_comfort_message_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.CallCenterMusicOnHoldSourceModify: *Optional* onHoldSource
    on_hold_source = Field(
        type=OCI.CallCenterMusicOnHoldSourceModify,
        required=False,
    )
    #: bool: *Optional* onHoldUseAlternateSourceForInternalCalls
    on_hold_use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMusicOnHoldSourceModify: *Optional* onHoldInternalSource
    on_hold_internal_source = Field(
        type=OCI.CallCenterMusicOnHoldSourceModify,
        required=False,
    )


class GroupCallCenterModifyDNISRequest(OCIRequest):
    """
    Modify a call center's DNIS settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "new_dnis_name",
            "newDNISName",
            str,
            False,
            False,
            False,
        ),
        E(
            "dnis_phone_number",
            "dnisPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_clid_settings",
            "useCustomCLIDSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_dnis_announcement_settings",
            "useCustomDnisAnnouncementSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "priority",
            "priority",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_outgoing_acd_call",
            "allowOutgoingACDCall",
            bool,
            False,
            False,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: str: *Optional* newDNISName
    new_dnis_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* dnisPhoneNumber
    dnis_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCustomCLIDSettings
    use_custom_clid_settings = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCustomDnisAnnouncementSettings
    use_custom_dnis_announcement_settings = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* priority
    priority = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowOutgoingACDCall
    allow_outgoing_acd_call = Field(
        type=bool,
        required=False,
    )


class GroupCallCenterModifyInstanceWeightedCallDistributionRequest(OCIRequest):
    """
    Request to modify the weighted call distribution of a Call Center instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_weight",
            "agentWeight",
            OCI.HuntAgentWeight,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.HuntAgentWeight: *Optional* agentWeight
    agent_weight = Field(
        type=OCI.HuntAgentWeight,
        required=False,
    )


class GroupCallCenterModifyRoutingPolicyRequest(OCIRequest):
    """
    Modify the group call center routing policy.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "routing_policy",
            "routingPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "routing_priority_order",
            "routingPriorityOrder",
            OCI.CallCenterRoutingPriorityOrder,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routingPolicy
    routing_policy = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterRoutingPriorityOrder: *Optional* routingPriorityOrder
    routing_priority_order = Field(
        type=OCI.CallCenterRoutingPriorityOrder,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reporting_server_url",
            "reportingServerURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "supervisor_user_id_list",
            "supervisorUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reportingServerURL
    reporting_server_url = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* supervisorUserIdList
    supervisor_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class GroupCallCenterModifySupervisorListRequest16(OCIRequest):
    """
    Request to modify the supervisor list for a call center.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "supervisor_user_id_list",
            "supervisorUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* supervisorUserIdList
    supervisor_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_call_disposition_codes",
            "enableCallDispositionCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_organization_codes",
            "includeOrganizationCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_use_of_call_disposition_codes",
            "forceUseOfCallDispositionCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_call_disposition_code",
            "defaultCallDispositionCode",
            OCI.CallDispositionCodeWithLevel,
            True,
            False,
            False,
        ),
        E(
            "call_disposition_code_activation",
            "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableCallDispositionCodes
    enable_call_disposition_codes = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeOrganizationCodes
    include_organization_codes = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceUseOfCallDispositionCodes
    force_use_of_call_disposition_codes = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallDispositionCodeWithLevel: *Optional* defaultCallDispositionCode
    default_call_disposition_code = Field(
        type=OCI.CallDispositionCodeWithLevel,
        required=False,
    )
    #: OCI.CallDispositionCodeActivation: *Optional* callDispositionCodeActivation
    call_disposition_code_activation = Field(
        type=OCI.CallDispositionCodeActivation,
        required=False,
    )


class GroupCallCenterQueueThresholdsModifyRequest(OCIRequest):
    """
    Modify a call center's queue Thresholds settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_calls_in_queue_yellow",
            "thresholdCurrentCallsInQueueYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_calls_in_queue_red",
            "thresholdCurrentCallsInQueueRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_longest_waiting_call_yellow",
            "thresholdCurrentLongestWaitingCallYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_current_longest_waiting_call_red",
            "thresholdCurrentLongestWaitingCallRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_estimated_wait_time_yellow",
            "thresholdAverageEstimatedWaitTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_estimated_wait_time_red",
            "thresholdAverageEstimatedWaitTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_handling_time_yellow",
            "thresholdAverageHandlingTimeYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_handling_time_red",
            "thresholdAverageHandlingTimeRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_speed_of_answer_yellow",
            "thresholdAverageSpeedOfAnswerYellow",
            int,
            False,
            False,
            False,
        ),
        E(
            "threshold_average_speed_of_answer_red",
            "thresholdAverageSpeedOfAnswerRed",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_notification_email",
            "enableNotificationEmail",
            bool,
            False,
            False,
            False,
        ),
        E(
            "notification_email_address_list",
            "notificationEmailAddressList",
            OCI.CallCenterQueueThresholdReplacementNotificationEmailList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallsInQueueYellow
    threshold_current_calls_in_queue_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentCallsInQueueRed
    threshold_current_calls_in_queue_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentLongestWaitingCallYellow
    threshold_current_longest_waiting_call_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdCurrentLongestWaitingCallRed
    threshold_current_longest_waiting_call_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageEstimatedWaitTimeYellow
    threshold_average_estimated_wait_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageEstimatedWaitTimeRed
    threshold_average_estimated_wait_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageHandlingTimeYellow
    threshold_average_handling_time_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageHandlingTimeRed
    threshold_average_handling_time_red = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageSpeedOfAnswerYellow
    threshold_average_speed_of_answer_yellow = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* thresholdAverageSpeedOfAnswerRed
    threshold_average_speed_of_answer_red = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableNotificationEmail
    enable_notification_email = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterQueueThresholdReplacementNotificationEmailList: *Optional*
    #: notificationEmailAddressList
    notification_email_address_list = Field(
        type=OCI.CallCenterQueueThresholdReplacementNotificationEmailList,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "supervisor_user_id_list",
            "supervisorUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* supervisorUserIdList
    supervisor_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_id_list",
            "userIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "recall_alternate_user_id",
            "recallAlternateUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "recall_to",
            "recallTo",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* userIdList
    user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: str: *Optional* recallAlternateUserId
    recall_alternate_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recallTo
    recall_to = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_id_list",
            "userIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* userIdList
    user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry",
            "entry",
            OCI.PhoneListEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.PhoneListEntry: *Required* entry
    entry = Field(
        type=OCI.PhoneListEntry,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_common_phone_list_name",
            "searchCriteriaGroupCommonPhoneListName",
            OCI.SearchCriteriaGroupCommonPhoneListName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_common_phone_list_number",
            "searchCriteriaGroupCommonPhoneListNumber",
            OCI.SearchCriteriaGroupCommonPhoneListNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaGroupCommonPhoneListName: *Optional*
    #: searchCriteriaGroupCommonPhoneListName
    search_criteria_group_common_phone_list_name = Field(
        type=OCI.SearchCriteriaGroupCommonPhoneListName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupCommonPhoneListNumber: *Optional*
    #: searchCriteriaGroupCommonPhoneListNumber
    search_criteria_group_common_phone_list_number = Field(
        type=OCI.SearchCriteriaGroupCommonPhoneListNumber,
        required=False,
    )


class GroupCommunicationBarringAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of Communication Barring Authorization codes to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            OCI.CommunicationBarringAuthorizationCodeEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CommunicationBarringAuthorizationCodeEntry: *Required* code
    code = Field(
        type=OCI.CommunicationBarringAuthorizationCodeEntry,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile_name",
            "profileName",
            OCI.CommunicationBarringProfileReplacementList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CommunicationBarringProfileReplacementList: *Optional* profileName
    profile_name = Field(
        type=OCI.CommunicationBarringProfileReplacementList,
        required=False,
    )


class GroupCustomContactDirectoryAddRequest17(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry",
            "entry",
            OCI.CustomContactDirectoryEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.CustomContactDirectoryEntry: *Optional* entry
    entry = Field(
        type=OCI.CustomContactDirectoryEntry,
        required=False,
    )


class GroupCustomContactDirectoryModifyRequest(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replace by: ``GroupCustomContactDirectoryModifyRequest17()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_id_list",
            "userIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* userIdList
    user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
        E(
            "parent_department_key",
            "parentDepartmentKey",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "calling_line_id_name",
            "callingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* parentDepartmentKey
    parent_department_key = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* callingLineIdName
    calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )


class GroupDepartmentAdminAddRequest(OCIRequest):
    """
    Add a department administrator to a group department.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "department_key",
            "departmentKey",
            OCI.GroupDepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.GroupDepartmentKey: *Required* departmentKey
    department_key = Field(
        type=OCI.GroupDepartmentKey,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )


class GroupDepartmentAdminGetListRequest(OCIRequest):
    """
    Get a list of department administrators for the department.
    The response is either a ``GroupDepartmentAdminGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "department_key",
            "departmentKey",
            OCI.GroupDepartmentKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.GroupDepartmentKey: *Required* departmentKey
    department_key = Field(
        type=OCI.GroupDepartmentKey,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_name",
            "departmentName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_department_name",
            "newDepartmentName",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_parent_department_key",
            "newParentDepartmentKey",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "calling_line_id_name",
            "callingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* departmentName
    department_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newDepartmentName
    new_department_name = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* newParentDepartmentKey
    new_parent_department_key = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* callingLineIdName
    calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "event_queue_type",
            "eventQueueType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_status_in_progress_or_pending",
            "searchCriteriaExactDeviceManagementEventStatusInProgressOrPending",
            OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_status_completed",
            "searchCriteriaExactDeviceManagementEventStatusCompleted",
            OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_action",
            "searchCriteriaExactDeviceManagementEventAction",
            OCI.SearchCriteriaExactDeviceManagementEventAction,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_level",
            "searchCriteriaExactDeviceManagementEventLevel",
            OCI.SearchCriteriaExactDeviceManagementEventLevel,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_type",
            "searchCriteriaExactDeviceManagementEventType",
            OCI.SearchCriteriaExactDeviceManagementEventType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_management_event_additional_info",
            "searchCriteriaDeviceManagementEventAdditionalInfo",
            OCI.SearchCriteriaDeviceManagementEventAdditionalInfo,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_management_event_login_id",
            "searchCriteriaDeviceManagementEventLoginId",
            OCI.SearchCriteriaDeviceManagementEventLoginId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* eventQueueType
    event_queue_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending: *Optional*
    #: searchCriteriaExactDeviceManagementEventStatusInProgressOrPending
    search_criteria_exact_device_management_event_status_in_progress_or_pending = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted: *Optional*
    #: searchCriteriaExactDeviceManagementEventStatusCompleted
    search_criteria_exact_device_management_event_status_completed = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventAction: *Optional*
    #: searchCriteriaExactDeviceManagementEventAction
    search_criteria_exact_device_management_event_action = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventAction,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventLevel: *Optional*
    #: searchCriteriaExactDeviceManagementEventLevel
    search_criteria_exact_device_management_event_level = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventLevel,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventType: *Optional*
    #: searchCriteriaExactDeviceManagementEventType
    search_criteria_exact_device_management_event_type = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventType,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceManagementEventAdditionalInfo: *Optional*
    #: searchCriteriaDeviceManagementEventAdditionalInfo
    search_criteria_device_management_event_additional_info = Field(
        type=OCI.SearchCriteriaDeviceManagementEventAdditionalInfo,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceManagementEventLoginId: *Optional*
    #: searchCriteriaDeviceManagementEventLoginId
    search_criteria_device_management_event_login_id = Field(
        type=OCI.SearchCriteriaDeviceManagementEventLoginId,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )


class GroupDeviceTypeFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a specified device type file for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )


class GroupDialableCallerIDCriteriaModifyRequest(OCIRequest):
    """
    Modify a Dialable Caller ID Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList,
            True,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
            True,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringCallTypeList: *Optional* matchCallType
    match_call_type = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringAlternateCallIndicatorList: *Optional*
    #: matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False,
    )
    #: bool: *Optional* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=False,
    )


class GroupDialableCallerIDModifyRequest(OCIRequest):
    """
    Modify the group�s Dialable Caller ID settings and criteria list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_group_criteria",
            "useGroupCriteria",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ns_screening_failure_policy",
            "nsScreeningFailurePolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "criteria_priority_order",
            "criteriaPriorityOrder",
            OCI.DialableCallerIDCriteriaPriorityOrder,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useGroupCriteria
    use_group_criteria = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* nsScreeningFailurePolicy
    ns_screening_failure_policy = Field(
        type=str,
        required=False,
    )
    #: OCI.DialableCallerIDCriteriaPriorityOrder: *Optional* criteriaPriorityOrder
    criteria_priority_order = Field(
        type=OCI.DialableCallerIDCriteriaPriorityOrder,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "use_terminate_call_to_agent_first",
            "useTerminateCallToAgentFirst",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_original_agent_services_for_busy_and_no_answer_calls",
            "useOriginalAgentServicesForBusyAndNoAnswerCalls",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: bool: *Optional* useTerminateCallToAgentFirst
    use_terminate_call_to_agent_first = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useOriginalAgentServicesForBusyAndNoAnswerCalls
    use_original_agent_services_for_busy_and_no_answer_calls = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_key",
            "departmentKey",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* departmentKey
    department_key = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_ip_address",
            "homeZoneIpAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "home_zone_ip_address_range",
            "homeZoneIpAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* homeZoneIpAddress
    home_zone_ip_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* homeZoneIpAddressRange
    home_zone_ip_address_range = Field(
        type=OCI.IPAddressRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "home_zone_ip_address",
            "homeZoneIpAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "home_zone_ip_address_range",
            "homeZoneIpAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* homeZoneIpAddress
    home_zone_ip_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* homeZoneIpAddressRange
    home_zone_ip_address_range = Field(
        type=OCI.IPAddressRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_trunk_group_name",
            "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaTrunkGroupName: *Optional* searchCriteriaTrunkGroupName
    search_criteria_trunk_group_name = Field(
        type=OCI.SearchCriteriaTrunkGroupName,
        required=False,
    )


class GroupExchangeIntegrationModifyRequest(OCIRequest):
    """
    Modify the group level configuration for Exchange Integration.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_exchange_integration",
            "enableExchangeIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "exchange_url",
            "exchangeURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "exchange_credentials",
            "exchangeCredentials",
            OCI.ExchangeUserNamePassword,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableExchangeIntegration
    enable_exchange_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* exchangeURL
    exchange_url = Field(
        type=str,
        required=False,
    )
    #: OCI.ExchangeUserNamePassword: *Optional* exchangeCredentials
    exchange_credentials = Field(
        type=OCI.ExchangeUserNamePassword,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
        E(
            "restore_default_codes",
            "restoreDefaultCodes",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=False,
    )
    #: bool: *Optional* restoreDefaultCodes
    restore_default_codes = Field(
        type=bool,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_feature_access_code_level",
            "useFeatureAccessCodeLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "restore_default_codes",
            "restoreDefaultCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useFeatureAccessCodeLevel
    use_feature_access_code_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* restoreDefaultCodes
    restore_default_codes = Field(
        type=bool,
        required=False,
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_feature_access_code_level",
            "useFeatureAccessCodeLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "restore_default_codes",
            "restoreDefaultCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useFeatureAccessCodeLevel
    use_feature_access_code_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* restoreDefaultCodes
    restore_default_codes = Field(
        type=bool,
        required=False,
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=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".
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_feature_access_code_level",
            "useFeatureAccessCodeLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "restore_default_codes",
            "restoreDefaultCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeModifyEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useFeatureAccessCodeLevel
    use_feature_access_code_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* restoreDefaultCodes
    restore_default_codes = Field(
        type=bool,
        required=False,
    )
    #: OCI.FeatureAccessCodeModifyEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeModifyEntry,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class GroupFindMeFollowMeModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Find-me/Follow-me instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupFindMeFollowMeModifyAlertingGroupRequest(OCIRequest):
    """
    Modify a Find-me/Follow-me alerting group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_alerting_group_name",
            "newAlertingGroupName",
            str,
            False,
            False,
            False,
        ),
        E(
            "alerting_group_description",
            "alertingGroupDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_diversion_inhibitor",
            "useDiversionInhibitor",
            bool,
            False,
            False,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_rings",
            "numberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "phone_number_or_user_list",
            "phoneNumberOrUserList",
            OCI.FindMeFollowMeAlertingGroupReplacementOutgoingDNSIPURIorUserIdList,
            True,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newAlertingGroupName
    new_alerting_group_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alertingGroupDescription
    alerting_group_description = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useDiversionInhibitor
    use_diversion_inhibitor = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfRings
    number_of_rings = Field(
        type=int,
        required=False,
    )
    #: OCI.FindMeFollowMeAlertingGroupReplacementOutgoingDNSIPURIorUserIdList:
    #: *Optional* phoneNumberOrUserList
    phone_number_or_user_list = Field(
        type=OCI.FindMeFollowMeAlertingGroupReplacementOutgoingDNSIPURIorUserIdList,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider",
            OCI.SearchCriteriaExactServiceProvider,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceProvider: *Optional*
    #: searchCriteriaExactServiceProvider
    search_criteria_exact_service_provider = Field(
        type=OCI.SearchCriteriaExactServiceProvider,
        required=False,
    )


class GroupGroupNightForwardingModifyRequest(OCIRequest):
    """
    Request to modify the Group Night Forwarding group parameters.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "night_forwarding",
            "nightForwarding",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* nightForwarding
    night_forwarding = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )


class GroupGroupPagingModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Group Paging instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupGroupPagingModifyOriginatorListRequest(OCIRequest):
    """
    Request to modify the originator list for a paging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "originator_user_id_list",
            "originatorUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* originatorUserIdList
    originator_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class GroupGroupPagingModifyTargetListRequest(OCIRequest):
    """
    Request to modify the target list for a paging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "target_user_id_list",
            "targetUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* targetUserIdList
    target_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class GroupHolidayScheduleAddRequest(OCIRequest):
    """
    Add a holiday schedule to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday01",
            "holiday01",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday02",
            "holiday02",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday03",
            "holiday03",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday04",
            "holiday04",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday05",
            "holiday05",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday06",
            "holiday06",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday07",
            "holiday07",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday08",
            "holiday08",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday09",
            "holiday09",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday10",
            "holiday10",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday11",
            "holiday11",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday12",
            "holiday12",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday13",
            "holiday13",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday14",
            "holiday14",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday15",
            "holiday15",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday16",
            "holiday16",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday17",
            "holiday17",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday18",
            "holiday18",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday19",
            "holiday19",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday20",
            "holiday20",
            OCI.Holiday,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )
    #: OCI.Holiday: *Optional* holiday01
    holiday01 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday02
    holiday02 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday03
    holiday03 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday04
    holiday04 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday05
    holiday05 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday06
    holiday06 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday07
    holiday07 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday08
    holiday08 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday09
    holiday09 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday10
    holiday10 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday11
    holiday11 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday12
    holiday12 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday13
    holiday13 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday14
    holiday14 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday15
    holiday15 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday16
    holiday16 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday17
    holiday17 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday18
    holiday18 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday19
    holiday19 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday20
    holiday20 = Field(
        type=OCI.Holiday,
        required=False,
    )


class GroupHolidayScheduleModifyRequest(OCIRequest):
    """
    Modify a holiday schedule in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_holiday_schedule_name",
            "newHolidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday01",
            "holiday01",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday02",
            "holiday02",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday03",
            "holiday03",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday04",
            "holiday04",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday05",
            "holiday05",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday06",
            "holiday06",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday07",
            "holiday07",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday08",
            "holiday08",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday09",
            "holiday09",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday10",
            "holiday10",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday11",
            "holiday11",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday12",
            "holiday12",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday13",
            "holiday13",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday14",
            "holiday14",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday15",
            "holiday15",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday16",
            "holiday16",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday17",
            "holiday17",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday18",
            "holiday18",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday19",
            "holiday19",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday20",
            "holiday20",
            OCI.Holiday,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newHolidayScheduleName
    new_holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday01
    holiday01 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday02
    holiday02 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday03
    holiday03 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday04
    holiday04 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday05
    holiday05 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday06
    holiday06 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday07
    holiday07 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday08
    holiday08 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday09
    holiday09 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday10
    holiday10 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday11
    holiday11 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday12
    holiday12 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday13
    holiday13 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday14
    holiday14 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday15
    holiday15 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday16
    holiday16 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday17
    holiday17 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday18
    holiday18 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday19
    holiday19 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday20
    holiday20 = Field(
        type=OCI.Holiday,
        required=False,
    )


class GroupHuntGroupModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Hunt Group instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_weight",
            "agentWeight",
            OCI.HuntAgentWeight,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.HuntAgentWeight: *Optional* agentWeight
    agent_weight = Field(
        type=OCI.HuntAgentWeight,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "imrn",
            "imrn",
            str,
            False,
            False,
            False,
        ),
        E(
            "imrn_range",
            "imrnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* imrn
    imrn = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* imrnRange
    imrn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "imrn",
            "imrn",
            str,
            False,
            False,
            False,
        ),
        E(
            "imrn_range",
            "imrnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* imrn
    imrn = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* imrnRange
    imrn_range = Field(
        type=OCI.DNRange,
        required=False,
    )


class GroupInstantGroupCallModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Instant Group Call service instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupInterceptGroupModifyRequest(OCIRequest):
    """
    Modify the group's intercept group service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``GroupInterceptGroupModifyRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "play_new_phone_number",
            "playNewPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "new_phone_number",
            "newPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_on_zero_to_phone_number",
            "transferOnZeroToPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* announcementSelection
    announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: bool: *Optional* playNewPhoneNumber
    play_new_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* newPhoneNumber
    new_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* transferOnZeroToPhoneNumber
    transfer_on_zero_to_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )


class GroupInterceptGroupModifyRequest16(OCIRequest):
    """
    Modify the group's intercept group service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "play_new_phone_number",
            "playNewPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "new_phone_number",
            "newPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_on_zero_to_phone_number",
            "transferOnZeroToPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "reroute_outbound_calls",
            "rerouteOutboundCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outbound_reroute_phone_number",
            "outboundReroutePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_outbound_local_calls",
            "allowOutboundLocalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "inbound_call_mode",
            "inboundCallMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "alternate_blocking_announcement",
            "alternateBlockingAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_to_voice_mail",
            "routeToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* announcementSelection
    announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Optional* playNewPhoneNumber
    play_new_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* newPhoneNumber
    new_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* transferOnZeroToPhoneNumber
    transfer_on_zero_to_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* rerouteOutboundCalls
    reroute_outbound_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* outboundReroutePhoneNumber
    outbound_reroute_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowOutboundLocalCalls
    allow_outbound_local_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* inboundCallMode
    inbound_call_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* alternateBlockingAnnouncement
    alternate_blocking_announcement = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeToVoiceMail
    route_to_voice_mail = Field(
        type=bool,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "template_activation",
            "templateActivation",
            OCI.MWIDeliveryToMobileEndpointTemplateActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: OCI.MWIDeliveryToMobileEndpointTemplateActivation: *Optional* templateActivation
    template_activation = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateActivation,
        required=False,
    )


class GroupMeetMeConferencingModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Meet-Me Conferencing instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupMeetMeConferencingModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Meet-Me Conferencing functions.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "allocated_ports",
            "allocatedPorts",
            OCI.MeetMeConferencingConferencePorts,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferencePorts: *Optional* allocatedPorts
    allocated_ports = Field(
        type=OCI.MeetMeConferencingConferencePorts,
        required=False,
    )


class GroupModifyRequest(OCIRequest):
    """
    Modify the profile for a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "default_domain",
            "defaultDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_limit",
            "userLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "group_name",
            "groupName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_name",
            "callingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "location_dialing_code",
            "locationDialingCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "contact",
            "contact",
            OCI.Contact,
            True,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* defaultDomain
    default_domain = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* userLimit
    user_limit = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* groupName
    group_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdName
    calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* locationDialingCode
    location_dialing_code = Field(
        type=str,
        required=False,
    )
    #: OCI.Contact: *Optional* contact
    contact = Field(
        type=OCI.Contact,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )


class GroupMusicOnHoldAddInstanceRequest14sp6(OCIRequest):
    """
    Add a Music on Hold Instance to a department.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``GroupMusicOnHoldAddInstanceRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceAdd,
            True,
            True,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceAdd,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd: *Required* source
    source = Field(
        type=OCI.MusicOnHoldSourceAdd,
        required=True,
    )
    #: bool: *Required* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceAdd,
        required=False,
    )


class GroupMusicOnHoldAddInstanceRequest16(OCIRequest):
    """
    Add a Music on Hold Instance to a department.
    The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceAdd16,
            True,
            True,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceAdd16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd16: *Required* source
    source = Field(
        type=OCI.MusicOnHoldSourceAdd16,
        required=True,
    )
    #: bool: *Required* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd16: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceAdd16,
        required=False,
    )


class GroupMusicOnHoldAddInstanceRequest20(OCIRequest):
    """
    Add a Music on Hold Instance to a department.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By ``GroupMusicOnHoldAddInstanceRequest21()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceAdd20,
            True,
            True,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceAdd20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd20: *Required* source
    source = Field(
        type=OCI.MusicOnHoldSourceAdd20,
        required=True,
    )
    #: bool: *Required* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd20: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceAdd20,
        required=False,
    )


class GroupMusicOnHoldAddInstanceRequest21(OCIRequest):
    """
    Add a Music on Hold Instance to a department.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceAdd21,
            True,
            True,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceAdd21,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd21: *Required* source
    source = Field(
        type=OCI.MusicOnHoldSourceAdd21,
        required=True,
    )
    #: bool: *Required* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=True,
    )
    #: OCI.MusicOnHoldSourceAdd21: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceAdd21,
        required=False,
    )


class GroupMusicOnHoldDeleteInstanceRequest(OCIRequest):
    """
    Delete a Music On Hold department instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )


class GroupMusicOnHoldGetInstanceRequest14sp4(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.
    The response is either ``GroupMusicOnHoldGetInstanceResponse14sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )


class GroupMusicOnHoldGetInstanceRequest19(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.
    The response is either ``GroupMusicOnHoldGetInstanceResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )


class GroupMusicOnHoldGetInstanceRequest21(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.
    The response is either ``GroupMusicOnHoldGetInstanceResponse21()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            False,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceModify,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldSourceModify,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceModify,
        required=False,
    )


class GroupMusicOnHoldModifyInstanceRequest16(OCIRequest):
    """
    Modify data for a group or department Music On
    Hold Instance.
    The response is either
    ``SuccessResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            False,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceModify16,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceModify16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify16: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldSourceModify16,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify16: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceModify16,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            False,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceModify20,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify20: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldSourceModify20,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify20: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceModify20,
        required=False,
    )


class GroupMusicOnHoldModifyInstanceRequest21(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            False,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldSourceModify21,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldSourceModify21,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify21: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldSourceModify21,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldSourceModify21: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldSourceModify21,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: OCI.DefaultNetworkClassOfService: *Required* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=OCI.DefaultNetworkClassOfService,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: OCI.DefaultNetworkClassOfService: *Required* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=OCI.DefaultNetworkClassOfService,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_key",
            "departmentKey",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "code_entry",
            "codeEntry",
            OCI.OutgoingCallingPlanAuthorizationCodeEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* departmentKey
    department_key = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.OutgoingCallingPlanAuthorizationCodeEntry: *Required* codeEntry
    code_entry = Field(
        type=OCI.OutgoingCallingPlanAuthorizationCodeEntry,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_key",
            "departmentKey",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "code",
            "code",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* departmentKey
    department_key = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Required* code
    code = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department_key",
            "departmentKey",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* departmentKey
    department_key = Field(
        type=OCI.DepartmentKey,
        required=False,
    )


class GroupPreferredCarrierGroupModifyRequest(OCIRequest):
    """
    Modifies the currently configured carriers for a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "intra_lata_carrier",
            "intraLataCarrier",
            OCI.GroupPreferredCarrierNameModify,
            True,
            False,
            False,
        ),
        E(
            "inter_lata_carrier",
            "interLataCarrier",
            OCI.GroupPreferredCarrierNameModify,
            True,
            False,
            False,
        ),
        E(
            "international_carrier",
            "internationalCarrier",
            OCI.GroupPreferredCarrierNameModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.GroupPreferredCarrierNameModify: *Optional* intraLataCarrier
    intra_lata_carrier = Field(
        type=OCI.GroupPreferredCarrierNameModify,
        required=False,
    )
    #: OCI.GroupPreferredCarrierNameModify: *Optional* interLataCarrier
    inter_lata_carrier = Field(
        type=OCI.GroupPreferredCarrierNameModify,
        required=False,
    )
    #: OCI.GroupPreferredCarrierNameModify: *Optional* internationalCarrier
    international_carrier = Field(
        type=OCI.GroupPreferredCarrierNameModify,
        required=False,
    )


class GroupRoutePointAddDNISRequest(OCIRequest):
    """
    Add a Route Point DNIS.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "dnis_phone_number",
            "dnisPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_clid_settings",
            "useCustomCLIDSettings",
            bool,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_dnis_announcement_settings",
            "useCustomDnisAnnouncementSettings",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_outgoing_acd_call",
            "allowOutgoingACDCall",
            bool,
            False,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: str: *Optional* dnisPhoneNumber
    dnis_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* useCustomCLIDSettings
    use_custom_clid_settings = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* useCustomDnisAnnouncementSettings
    use_custom_dnis_announcement_settings = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowOutgoingACDCall
    allow_outgoing_acd_call = Field(
        type=bool,
        required=True,
    )


class GroupRoutePointDeleteDNISRequest(OCIRequest):
    """
    Delete a route point's DNIS.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "external_system",
            "externalSystem",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_route_point_name",
            "searchCriteriaRoutePointName",
            OCI.SearchCriteriaRoutePointName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* externalSystem
    external_system = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaRoutePointName: *Optional* searchCriteriaRoutePointName
    search_criteria_route_point_name = Field(
        type=OCI.SearchCriteriaRoutePointName,
        required=False,
    )


class GroupRoutePointGetDNISAgentListRequest(OCIRequest):
    """
    Get a list of agent who selected the DNIS as the outgoing call.
    The response is either ``GroupRoutePointGetDNISAgentListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupRoutePointGetDNISAnnouncementRequest(OCIRequest):
    """
    Get a route point's DNIS Announcements
    The response is either a ``GroupRoutePointGetDNISAnnouncementResponse()`` or an
    ``ErrorResponse()``.

    Replaced By ``GroupRoutePointGetDNISAnnouncementRequest19()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupRoutePointGetDNISAnnouncementRequest19(OCIRequest):
    """
    Get a route point's DNIS Announcements
    The response is either a ``GroupRoutePointGetDNISAnnouncementResponse19()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupRoutePointGetDNISAnnouncementRequest20(OCIRequest):
    """
    Get a route point's DNIS Announcements
    The response is either a ``GroupRoutePointGetDNISAnnouncementResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


class GroupRoutePointGetDNISRequest(OCIRequest):
    """
    Get a route point's DNIS.
    The response is either a ``GroupRoutePointGetDNISResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_route_point_name",
            "searchCriteriaRoutePointName",
            OCI.SearchCriteriaRoutePointName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaRoutePointName: *Optional* searchCriteriaRoutePointName
    search_criteria_route_point_name = Field(
        type=OCI.SearchCriteriaRoutePointName,
        required=False,
    )


class GroupRoutePointModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Route Point instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class GroupRoutePointModifyDNISRequest(OCIRequest):
    """
    Modify a route point's DNIS settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "new_dnis_name",
            "newDNISName",
            str,
            False,
            False,
            False,
        ),
        E(
            "dnis_phone_number",
            "dnisPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_clid_settings",
            "useCustomCLIDSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_custom_dnis_announcement_settings",
            "useCustomDnisAnnouncementSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_outgoing_acd_call",
            "allowOutgoingACDCall",
            bool,
            False,
            False,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: str: *Optional* newDNISName
    new_dnis_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* dnisPhoneNumber
    dnis_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCustomCLIDSettings
    use_custom_clid_settings = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useCustomDnisAnnouncementSettings
    use_custom_dnis_announcement_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowOutgoingACDCall
    allow_outgoing_acd_call = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_call_disposition_codes",
            "enableCallDispositionCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_organization_codes",
            "includeOrganizationCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_use_of_call_disposition_codes",
            "forceUseOfCallDispositionCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_call_disposition_code",
            "defaultCallDispositionCode",
            OCI.CallDispositionCodeWithLevel,
            True,
            False,
            False,
        ),
        E(
            "call_disposition_code_activation",
            "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableCallDispositionCodes
    enable_call_disposition_codes = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeOrganizationCodes
    include_organization_codes = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceUseOfCallDispositionCodes
    force_use_of_call_disposition_codes = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallDispositionCodeWithLevel: *Optional* defaultCallDispositionCode
    default_call_disposition_code = Field(
        type=OCI.CallDispositionCodeWithLevel,
        required=False,
    )
    #: OCI.CallDispositionCodeActivation: *Optional* callDispositionCodeActivation
    call_disposition_code_activation = Field(
        type=OCI.CallDispositionCodeActivation,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* startDate
    start_date = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Required* endDate
    end_date = Field(
        type=str,
        required=True,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class GroupScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a group schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


class GroupScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of group schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class GroupScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a group schedule.
    The response is either a ``GroupScheduleGetEventListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class GroupScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a group schedule.
    The response is either a ``GroupScheduleGetEventResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_event_name",
            "newEventName",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEventName
    new_event_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDate
    start_date = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Optional* endDate
    end_date = Field(
        type=str,
        required=False,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class GroupScheduleModifyRequest(OCIRequest):
    """
    Modify a group schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "new_schedule_name",
            "newScheduleName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Optional* newScheduleName
    new_schedule_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_id_list",
            "userIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* userIdList
    user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class GroupServiceScriptsGroupModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Service Scripts Configuration.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "script_file",
            "scriptFile",
            OCI.ServiceScriptsFileResource,
            True,
            False,
            False,
        ),
        E(
            "script_url",
            "scriptUrl",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: OCI.ServiceScriptsFileResource: *Optional* scriptFile
    script_file = Field(
        type=OCI.ServiceScriptsFileResource,
        required=False,
    )
    #: str: *Optional* scriptUrl
    script_url = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_level",
            "searchCriteriaExactDeviceLevel",
            OCI.SearchCriteriaExactDeviceLevel,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceLevel: *Optional* searchCriteriaExactDeviceLevel
    search_criteria_exact_device_level = Field(
        type=OCI.SearchCriteriaExactDeviceLevel,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* devices
    devices = Field(
        type=OCI.AccessDevice,
        required=True,
    )


class GroupSessionAdmissionControlGroupAddRequest(OCIRequest):
    """
    Request to add a session admission control group for the group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_session",
            "maxSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_session",
            "reservedSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "reserved_user_originating_sessions",
            "reservedUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_terminating_sessions",
            "reservedUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group",
            "becomeDefaultGroup",
            bool,
            False,
            True,
            False,
        ),
        E(
            "count_intra_sac_group_sessions",
            "countIntraSACGroupSessions",
            bool,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maxSession
    max_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Required* reservedSession
    reserved_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* reservedUserOriginatingSessions
    reserved_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserTerminatingSessions
    reserved_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* becomeDefaultGroup
    become_default_group = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* countIntraSACGroupSessions
    count_intra_sac_group_sessions = Field(
        type=bool,
        required=True,
    )
    #: OCI.AccessDevice: *Optional* devices
    devices = Field(
        type=OCI.AccessDevice,
        required=False,
    )


class GroupSessionAdmissionControlGroupAddRequest19sp1(OCIRequest):
    """
    Request to add a session admission control group for the group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_session",
            "maxSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_session",
            "reservedSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "reserved_user_originating_sessions",
            "reservedUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_terminating_sessions",
            "reservedUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group",
            "becomeDefaultGroup",
            bool,
            False,
            True,
            False,
        ),
        E(
            "count_intra_sac_group_sessions",
            "countIntraSACGroupSessions",
            bool,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maxSession
    max_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Required* reservedSession
    reserved_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* reservedUserOriginatingSessions
    reserved_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserTerminatingSessions
    reserved_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* becomeDefaultGroup
    become_default_group = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* countIntraSACGroupSessions
    count_intra_sac_group_sessions = Field(
        type=bool,
        required=True,
    )
    #: OCI.AccessDevice: *Optional* devices
    devices = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: bool: *Required* blockEmergencyAndRepairCallsDueToSACLimits
    block_emergency_and_repair_calls_due_to_sac_limits = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* devices
    devices = Field(
        type=OCI.AccessDevice,
        required=True,
    )


class GroupTimeScheduleAddRequest(OCIRequest):
    """
    Add a time schedule to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_interval01",
            "timeInterval01",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval02",
            "timeInterval02",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval03",
            "timeInterval03",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval04",
            "timeInterval04",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval05",
            "timeInterval05",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval06",
            "timeInterval06",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval07",
            "timeInterval07",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval08",
            "timeInterval08",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval09",
            "timeInterval09",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval10",
            "timeInterval10",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval11",
            "timeInterval11",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval12",
            "timeInterval12",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval13",
            "timeInterval13",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval14",
            "timeInterval14",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval15",
            "timeInterval15",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval16",
            "timeInterval16",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval17",
            "timeInterval17",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval18",
            "timeInterval18",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval19",
            "timeInterval19",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval20",
            "timeInterval20",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeInterval: *Optional* timeInterval01
    time_interval01 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval02
    time_interval02 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval03
    time_interval03 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval04
    time_interval04 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval05
    time_interval05 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval06
    time_interval06 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval07
    time_interval07 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval08
    time_interval08 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval09
    time_interval09 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval10
    time_interval10 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval11
    time_interval11 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval12
    time_interval12 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval13
    time_interval13 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval14
    time_interval14 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval15
    time_interval15 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval16
    time_interval16 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval17
    time_interval17 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval18
    time_interval18 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval19
    time_interval19 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval20
    time_interval20 = Field(
        type=OCI.TimeInterval,
        required=False,
    )


class GroupTimeScheduleModifyRequest(OCIRequest):
    """
    Modify a specified time schedule in a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_time_schedule_name",
            "newTimeScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_interval01",
            "timeInterval01",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval02",
            "timeInterval02",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval03",
            "timeInterval03",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval04",
            "timeInterval04",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval05",
            "timeInterval05",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval06",
            "timeInterval06",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval07",
            "timeInterval07",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval08",
            "timeInterval08",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval09",
            "timeInterval09",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval10",
            "timeInterval10",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval11",
            "timeInterval11",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval12",
            "timeInterval12",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval13",
            "timeInterval13",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval14",
            "timeInterval14",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval15",
            "timeInterval15",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval16",
            "timeInterval16",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval17",
            "timeInterval17",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval18",
            "timeInterval18",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval19",
            "timeInterval19",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval20",
            "timeInterval20",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newTimeScheduleName
    new_time_schedule_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval01
    time_interval01 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval02
    time_interval02 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval03
    time_interval03 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval04
    time_interval04 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval05
    time_interval05 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval06
    time_interval06 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval07
    time_interval07 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval08
    time_interval08 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval09
    time_interval09 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval10
    time_interval10 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval11
    time_interval11 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval12
    time_interval12 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval13
    time_interval13 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval14
    time_interval14 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval15
    time_interval15 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval16
    time_interval16 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval17
    time_interval17 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval18
    time_interval18 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval19
    time_interval19 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval20
    time_interval20 = Field(
        type=OCI.TimeInterval,
        required=False,
    )


class GroupTrunkGroupDeleteInstanceRequest14sp4(OCIRequest):
    """
    Delete a Trunk Group Instance from a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


class GroupTrunkGroupGetInstanceRequest14sp4(OCIRequest):
    """
    Get a Trunk Group Instance's profile.
    The response is either a ``GroupTrunkGroupGetInstanceResponse14sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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".
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_id",
            "pilotUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id_list",
            "hostedUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_pilot_user_calling_line_identity",
            "usePilotUserCallingLineIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_pilot_user_charge_number",
            "usePilotUserChargeNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserId
    pilot_user_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableBursting
    enable_bursting = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* unreachableDestinationTrapInitialCalls
    unreachable_destination_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* unreachableDestinationTrapOffsetCalls
    unreachable_destination_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* hostedUserIdList
    hosted_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* usePilotUserCallingLineIdentity
    use_pilot_user_calling_line_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* usePilotUserChargeNumber
    use_pilot_user_charge_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_id",
            "pilotUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id_list",
            "hostedUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserId
    pilot_user_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableBursting
    enable_bursting = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* hostedUserIdList
    hosted_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineIdentityPolicy
    pilot_user_calling_line_identity_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_id",
            "pilotUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id_list",
            "hostedUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "clid_source_for_screened_calls_policy",
            "clidSourceForScreenedCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_lookup_policy",
            "userLookupPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_user_lookup_policy",
            "useSystemUserLookupPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_implicit_registration_set_support_policy",
            "useSystemImplicitRegistrationSetSupportPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_system_support_connected_identity_policy",
            "useSystemSupportConnectedIdentityPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_connected_identity_policy",
            "supportConnectedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_options_message_response_status_codes",
            "useSystemOptionsMessageResponseStatusCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delete_options_message_response_status_code",
            "deleteOptionsMessageResponseStatusCode",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserId
    pilot_user_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableBursting
    enable_bursting = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* hostedUserIdList
    hosted_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineIdentityForExternalCallsPolicy
    pilot_user_calling_line_identity_for_external_calls_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* clidSourceForScreenedCallsPolicy
    clid_source_for_screened_calls_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemCLIDSourceForScreenedCallsPolicy
    use_system_clid_source_for_screened_calls_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* userLookupPolicy
    user_lookup_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemUserLookupPolicy
    use_system_user_lookup_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineIdentityForEmergencyCallsPolicy
    pilot_user_calling_line_identity_for_emergency_calls_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* implicitRegistrationSetSupportPolicy
    implicit_registration_set_support_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemImplicitRegistrationSetSupportPolicy
    use_system_implicit_registration_set_support_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipIdentityForPilotAndProxyTrunkModesPolicy
    sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy
    use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useSystemSupportConnectedIdentityPolicy
    use_system_support_connected_identity_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* supportConnectedIdentityPolicy
    support_connected_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemOptionsMessageResponseStatusCodes
    use_system_options_message_response_status_codes = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* deleteOptionsMessageResponseStatusCode
    delete_options_message_response_status_code = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_id",
            "pilotUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id_list",
            "hostedUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            False,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "clid_source_for_screened_calls_policy",
            "clidSourceForScreenedCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_lookup_policy",
            "userLookupPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_user_lookup_policy",
            "useSystemUserLookupPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_implicit_registration_set_support_policy",
            "useSystemImplicitRegistrationSetSupportPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_system_support_connected_identity_policy",
            "useSystemSupportConnectedIdentityPolicy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_connected_identity_policy",
            "supportConnectedIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_system_options_message_response_status_codes",
            "useSystemOptionsMessageResponseStatusCodes",
            bool,
            False,
            False,
            False,
        ),
        E(
            "delete_options_message_response_status_code",
            "deleteOptionsMessageResponseStatusCode",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserId
    pilot_user_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableBursting
    enable_bursting = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Optional* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* hostedUserIdList
    hosted_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineIdentityForExternalCallsPolicy
    pilot_user_calling_line_identity_for_external_calls_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* clidSourceForScreenedCallsPolicy
    clid_source_for_screened_calls_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemCLIDSourceForScreenedCallsPolicy
    use_system_clid_source_for_screened_calls_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* userLookupPolicy
    user_lookup_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemUserLookupPolicy
    use_system_user_lookup_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* pilotUserCallingLineIdentityForEmergencyCallsPolicy
    pilot_user_calling_line_identity_for_emergency_calls_policy = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* implicitRegistrationSetSupportPolicy
    implicit_registration_set_support_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemImplicitRegistrationSetSupportPolicy
    use_system_implicit_registration_set_support_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipIdentityForPilotAndProxyTrunkModesPolicy
    sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy
    use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useSystemSupportConnectedIdentityPolicy
    use_system_support_connected_identity_policy = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* supportConnectedIdentityPolicy
    support_connected_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useSystemOptionsMessageResponseStatusCodes
    use_system_options_message_response_status_codes = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* deleteOptionsMessageResponseStatusCode
    delete_options_message_response_status_code = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            OCI.UnboundedNonNegativeInt,
            True,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            OCI.UnboundedNonNegativeInt,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedNonNegativeInt: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=OCI.UnboundedNonNegativeInt,
        required=False,
    )
    #: OCI.UnboundedNonNegativeInt: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=OCI.UnboundedNonNegativeInt,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            OCI.UnboundedNonNegativeInt,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: OCI.UnboundedNonNegativeInt: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=OCI.UnboundedNonNegativeInt,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "status_code",
            "statusCode",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Required* statusCode
    status_code = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupSecurityClassificationGetRequest(OCIRequest):
    """
    Get a trunk group's Security Classifications configuration.
    The response is either ``GroupTrunkGroupSecurityClassificationGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


class GroupTrunkGroupSecurityClassificationModifyRequest(OCIRequest):
    """
    Modify a trunk group's Security Classification configuration
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "default_security_classification",
            "defaultSecurityClassification",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Required* defaultSecurityClassification
    default_security_classification = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupUserCreationTaskAddRequest14sp4(OCIRequest):
    """
    Add a user creation task for a trunk group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id_format",
            "userIdFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id_domain",
            "userIdDomain",
            str,
            False,
            True,
            False,
        ),
        E(
            "populate_extension",
            "populateExtension",
            bool,
            False,
            True,
            False,
        ),
        E(
            "line_port_format",
            "linePortFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_port_domain",
            "linePortDomain",
            str,
            False,
            True,
            False,
        ),
        E(
            "populate_contact",
            "populateContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "contact_format",
            "contactFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "contact_domain",
            "contactDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_phone_numbers",
            "userPhoneNumbers",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "user_extensions",
            "userExtensions",
            str,
            True,
            True,
            False,
        ),  # unknown
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_service",
            "userService",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userIdFormat
    user_id_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userIdDomain
    user_id_domain = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* populateExtension
    populate_extension = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* linePortFormat
    line_port_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* linePortDomain
    line_port_domain = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* populateContact
    populate_contact = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* contactFormat
    contact_format = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* contactDomain
    contact_domain = Field(
        type=str,
        required=False,
    )
    #: str: *Required* userPhoneNumbers
    user_phone_numbers = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userExtensions
    user_extensions = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* servicePackName
    service_pack_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* userService
    user_service = Field(
        type=str,
        required=False,
    )


class GroupTrunkGroupUserCreationTaskDeleteRequest14sp4(OCIRequest):
    """
    Delete a user creation task for a trunk group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupUserCreationTaskGetListRequest14sp4(OCIRequest):
    """
    Get the list of user creation tasks for a trunk group.
    The response is either ``GroupTrunkGroupUserCreationTaskGetListResponse14sp4()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


class GroupTrunkGroupUserCreationTaskGetRequest14sp4(OCIRequest):
    """
    Request the details of a specified user creation task for a trunk group.
    The response is either ``GroupTrunkGroupUserCreationTaskGetResponse14sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_virtual_on_net_call_type_name",
            "searchCriteriaExactVirtualOnNetCallTypeName",
            OCI.SearchCriteriaExactVirtualOnNetCallTypeName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactVirtualOnNetCallTypeName: *Optional*
    #: searchCriteriaExactVirtualOnNetCallTypeName
    search_criteria_exact_virtual_on_net_call_type_name = Field(
        type=OCI.SearchCriteriaExactVirtualOnNetCallTypeName,
        required=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest(OCIRequest):
    """
    Modify the group's voice portal branding settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_greeting_selection",
            "voicePortalGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_selection",
            "voiceMessagingGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* voicePortalGreetingSelection
    voice_portal_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* voiceMessagingGreetingSelection
    voice_messaging_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest16(OCIRequest):
    """
    Modify the group's voice portal branding
    settings.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_greeting_selection",
            "voicePortalGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_selection",
            "voiceMessagingGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* voicePortalGreetingSelection
    voice_portal_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: str: *Optional* voiceMessagingGreetingSelection
    voice_messaging_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest20(OCIRequest):
    """
    Modify the group's voice portal branding settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_greeting_selection",
            "voicePortalGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.AnnouncementFileKey,
            True,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_selection",
            "voiceMessagingGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.AnnouncementFileKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* voicePortalGreetingSelection
    voice_portal_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.AnnouncementFileKey: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.AnnouncementFileKey,
        required=False,
    )
    #: str: *Optional* voiceMessagingGreetingSelection
    voice_messaging_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.AnnouncementFileKey: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.AnnouncementFileKey,
        required=False,
    )


class GroupVoiceXmlModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of VoiceXML instances.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_activation",
            "serviceActivation",
            OCI.ServiceActivation,
            True,
            False,
            False,
        ),
    )
    #: OCI.ServiceActivation: *Optional* serviceActivation
    service_activation = Field(
        type=OCI.ServiceActivation,
        required=False,
    )


class ServiceProviderAccessDeviceAddRequest14(OCIRequest):
    """
    Request to add a service provider access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "outbound_proxy_server_net_address",
            "outboundProxyServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "stun_server_net_address",
            "stunServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "serial_number",
            "serialNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_url",
            "mobilityManagerProvisioningURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_custom_user_name_password",
            "useCustomUserNamePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "access_device_credentials",
            "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* outboundProxyServerNetAddress
    outbound_proxy_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* stunServerNetAddress
    stun_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serialNumber
    serial_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningURL
    mobility_manager_provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningUserName
    mobility_manager_provisioning_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningPassword
    mobility_manager_provisioning_password = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultOriginatingServiceKey
    mobility_manager_default_originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultTerminatingServiceKey
    mobility_manager_default_terminating_service_key = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useCustomUserNamePassword
    use_custom_user_name_password = Field(
        type=bool,
        required=False,
    )
    #: OCI.DeviceManagementUserNamePassword16: *Optional* accessDeviceCredentials
    access_device_credentials = Field(
        type=OCI.DeviceManagementUserNamePassword16,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "extended_capture_enabled",
            "extendedCaptureEnabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Optional* extendedCaptureEnabled
    extended_capture_enabled = Field(
        type=bool,
        required=False,
    )


class ServiceProviderAccessDeviceGetListRequest(OCIRequest):
    """
    Requests the list of access devices in a service provider.
    The response is either ``ServiceProviderAccessDeviceGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_access_device_version",
            "searchCriteriaAccessDeviceVersion",
            OCI.SearchCriteriaAccessDeviceVersion,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaAccessDeviceVersion: *Optional*
    #: searchCriteriaAccessDeviceVersion
    search_criteria_access_device_version = Field(
        type=OCI.SearchCriteriaAccessDeviceVersion,
        required=False,
    )


class ServiceProviderAccessDeviceModifyRequest14(OCIRequest):
    """
    Request to modify a specified service provider access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "outbound_proxy_server_net_address",
            "outboundProxyServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "stun_server_net_address",
            "stunServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "serial_number",
            "serialNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_url",
            "mobilityManagerProvisioningURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_custom_user_name_password",
            "useCustomUserNamePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "access_device_credentials",
            "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* outboundProxyServerNetAddress
    outbound_proxy_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* stunServerNetAddress
    stun_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serialNumber
    serial_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningURL
    mobility_manager_provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningUserName
    mobility_manager_provisioning_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningPassword
    mobility_manager_provisioning_password = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultOriginatingServiceKey
    mobility_manager_default_originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultTerminatingServiceKey
    mobility_manager_default_terminating_service_key = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useCustomUserNamePassword
    use_custom_user_name_password = Field(
        type=bool,
        required=False,
    )
    #: OCI.DeviceManagementUserNamePassword16: *Optional* accessDeviceCredentials
    access_device_credentials = Field(
        type=OCI.DeviceManagementUserNamePassword16,
        required=False,
    )


class ServiceProviderAddRequest13mp2(OCIRequest):
    """
    Add a service provider or enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "is_enterprise",
            "isEnterprise",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_custom_routing_profile",
            "useCustomRoutingProfile",
            bool,
            False,
            True,
            False,
        ),
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "default_domain",
            "defaultDomain",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_provider_name",
            "serviceProviderName",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_email",
            "supportEmail",
            str,
            False,
            False,
            False,
        ),
        E(
            "contact",
            "contact",
            OCI.Contact,
            True,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
    )
    #: bool: *Required* isEnterprise
    is_enterprise = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useCustomRoutingProfile
    use_custom_routing_profile = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* defaultDomain
    default_domain = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* serviceProviderName
    service_provider_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportEmail
    support_email = Field(
        type=str,
        required=False,
    )
    #: OCI.Contact: *Optional* contact
    contact = Field(
        type=OCI.Contact,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_message_selection",
            "announcementMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "confirmation_message_audio_file",
            "confirmationMessageAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "confirmation_timout_seconds",
            "confirmationTimoutSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementMessageSelection
    announcement_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* confirmationMessageAudioFile
    confirmation_message_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: int: *Optional* confirmationTimoutSeconds
    confirmation_timout_seconds = Field(
        type=int,
        required=False,
    )


class ServiceProviderAnswerConfirmationModifyRequest16(OCIRequest):
    """
    Modify a service provider or enterprise's answer confirmation settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_message_selection",
            "announcementMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "confirmation_message_audio_file",
            "confirmationMessageAudioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "confirmation_timout_seconds",
            "confirmationTimoutSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementMessageSelection
    announcement_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* confirmationMessageAudioFile
    confirmation_message_audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: int: *Optional* confirmationTimoutSeconds
    confirmation_timout_seconds = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_mobile_network",
            "searchCriteriaExactMobileNetwork",
            OCI.SearchCriteriaExactMobileNetwork,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaMobileSubscriberDirectoryNumber: *Optional*
    #: searchCriteriaMobileSubscriberDirectoryNumber
    search_criteria_mobile_subscriber_directory_number = Field(
        type=OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactMobileNetwork: *Optional* searchCriteriaExactMobileNetwork
    search_criteria_exact_mobile_network = Field(
        type=OCI.SearchCriteriaExactMobileNetwork,
        required=False,
    )


class ServiceProviderCommunicationBarringDigitPatternCriteriaGetPatternListRequest(
    OCIRequest,
):
    """
    Get an existing Digit Pattern Criteria.
    The response is either a ``ServiceProviderCommunicationBarringDigitPatternCriteriaGetPatternListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_digit_pattern",
            "searchCriteriaDigitPattern",
            OCI.SearchCriteriaDigitPattern,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDigitPattern: *Optional* searchCriteriaDigitPattern
    search_criteria_digit_pattern = Field(
        type=OCI.SearchCriteriaDigitPattern,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.CommunicationBarringIncomingRule,
            True,
            False,
            False,
        ),
        E(
            "become_default",
            "becomeDefault",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule: *Optional*
    #: originatingRule
    originating_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule: *Optional*
    #: redirectingRule
    redirecting_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
        required=False,
    )
    #: str: *Required* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringIncomingRule: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.CommunicationBarringIncomingRule,
        required=False,
    )
    #: bool: *Required* becomeDefault
    become_default = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
            True,
            False,
            False,
        ),
        E(
            "call_me_now_default_action",
            "callMeNowDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_me_now_default_call_timeout",
            "callMeNowDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_rule",
            "callMeNowRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.CommunicationBarringIncomingRule,
            True,
            False,
            False,
        ),
        E(
            "become_default",
            "becomeDefault",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule: *Optional*
    #: originatingRule
    originating_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule: *Optional*
    #: redirectingRule
    redirecting_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
        required=False,
    )
    #: str: *Required* callMeNowDefaultAction
    call_me_now_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* callMeNowDefaultCallTimeout
    call_me_now_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule: *Optional*
    #: callMeNowRule
    call_me_now_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule,
        required=False,
    )
    #: str: *Required* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringIncomingRule: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.CommunicationBarringIncomingRule,
        required=False,
    )
    #: bool: *Required* becomeDefault
    become_default = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
            True,
            False,
            False,
        ),
        E(
            "call_me_now_default_action",
            "callMeNowDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_me_now_default_call_timeout",
            "callMeNowDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_rule",
            "callMeNowRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.CommunicationBarringIncomingRule19sp1,
            True,
            False,
            False,
        ),
        E(
            "become_default",
            "becomeDefault",
            bool,
            False,
            True,
            False,
        ),
        E(
            "apply_to_attended_call_transfers",
            "applyToAttendedCallTransfers",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule: *Optional*
    #: originatingRule
    originating_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule: *Optional*
    #: redirectingRule
    redirecting_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
        required=False,
    )
    #: str: *Required* callMeNowDefaultAction
    call_me_now_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* callMeNowDefaultCallTimeout
    call_me_now_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule: *Optional*
    #: callMeNowRule
    call_me_now_rule = Field(
        type=OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule,
        required=False,
    )
    #: str: *Required* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringIncomingRule19sp1: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.CommunicationBarringIncomingRule19sp1,
        required=False,
    )
    #: bool: *Required* becomeDefault
    become_default = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* applyToAttendedCallTransfers
    apply_to_attended_call_transfers = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "event_queue_type",
            "eventQueueType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_status_in_progress_or_pending",
            "searchCriteriaExactDeviceManagementEventStatusInProgressOrPending",
            OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_status_completed",
            "searchCriteriaExactDeviceManagementEventStatusCompleted",
            OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_action",
            "searchCriteriaExactDeviceManagementEventAction",
            OCI.SearchCriteriaExactDeviceManagementEventAction,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_level",
            "searchCriteriaExactDeviceManagementEventLevel",
            OCI.SearchCriteriaExactDeviceManagementEventLevel,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_type",
            "searchCriteriaExactDeviceManagementEventType",
            OCI.SearchCriteriaExactDeviceManagementEventType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_management_event_additional_info",
            "searchCriteriaDeviceManagementEventAdditionalInfo",
            OCI.SearchCriteriaDeviceManagementEventAdditionalInfo,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_management_event_login_id",
            "searchCriteriaDeviceManagementEventLoginId",
            OCI.SearchCriteriaDeviceManagementEventLoginId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* eventQueueType
    event_queue_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending: *Optional*
    #: searchCriteriaExactDeviceManagementEventStatusInProgressOrPending
    search_criteria_exact_device_management_event_status_in_progress_or_pending = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted: *Optional*
    #: searchCriteriaExactDeviceManagementEventStatusCompleted
    search_criteria_exact_device_management_event_status_completed = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventAction: *Optional*
    #: searchCriteriaExactDeviceManagementEventAction
    search_criteria_exact_device_management_event_action = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventAction,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventLevel: *Optional*
    #: searchCriteriaExactDeviceManagementEventLevel
    search_criteria_exact_device_management_event_level = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventLevel,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventType: *Optional*
    #: searchCriteriaExactDeviceManagementEventType
    search_criteria_exact_device_management_event_type = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventType,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceManagementEventAdditionalInfo: *Optional*
    #: searchCriteriaDeviceManagementEventAdditionalInfo
    search_criteria_device_management_event_additional_info = Field(
        type=OCI.SearchCriteriaDeviceManagementEventAdditionalInfo,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceManagementEventLoginId: *Optional*
    #: searchCriteriaDeviceManagementEventLoginId
    search_criteria_device_management_event_login_id = Field(
        type=OCI.SearchCriteriaDeviceManagementEventLoginId,
        required=False,
    )


class ServiceProviderDialableCallerIDCriteriaModifyRequest(OCIRequest):
    """
    Modify a Dialable Caller ID Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList,
            True,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
            True,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringCallTypeList: *Optional* matchCallType
    match_call_type = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringAlternateCallIndicatorList: *Optional*
    #: matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False,
    )
    #: bool: *Optional* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_service_provider_criteria",
            "useServiceProviderCriteria",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ns_screening_failure_policy",
            "nsScreeningFailurePolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "criteria_priority_order",
            "criteriaPriorityOrder",
            OCI.DialableCallerIDCriteriaPriorityOrder,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useServiceProviderCriteria
    use_service_provider_criteria = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* nsScreeningFailurePolicy
    ns_screening_failure_policy = Field(
        type=str,
        required=False,
    )
    #: OCI.DialableCallerIDCriteriaPriorityOrder: *Optional* criteriaPriorityOrder
    criteria_priority_order = Field(
        type=OCI.DialableCallerIDCriteriaPriorityOrder,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=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".
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeModifyEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.FeatureAccessCodeModifyEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeModifyEntry,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "is_enterprise",
            "isEnterprise",
            bool,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_name",
            "searchCriteriaServiceProviderName",
            OCI.SearchCriteriaServiceProviderName,
            True,
            False,
            False,
        ),
    )
    #: bool: *Optional* isEnterprise
    is_enterprise = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderName: *Optional*
    #: searchCriteriaServiceProviderName
    search_criteria_service_provider_name = Field(
        type=OCI.SearchCriteriaServiceProviderName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "imrn",
            "imrn",
            str,
            False,
            False,
            False,
        ),
        E(
            "imrn_range",
            "imrnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* imrn
    imrn = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* imrnRange
    imrn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "imrn",
            "imrn",
            str,
            False,
            False,
            False,
        ),
        E(
            "imrn_range",
            "imrnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* imrn
    imrn = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* imrnRange
    imrn_range = Field(
        type=OCI.DNRange,
        required=False,
    )


class ServiceProviderMWIDeliveryToMobileEndpointModifyRequest(OCIRequest):
    """
    Modify the service provider level MWI custom notifications settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "template_activation",
            "templateActivation",
            OCI.MWIDeliveryToMobileEndpointTemplateActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MWIDeliveryToMobileEndpointTemplateActivation: *Optional* templateActivation
    template_activation = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "allocated_ports",
            "allocatedPorts",
            OCI.MeetMeConferencingConferencePorts,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferencePorts: *Optional* allocatedPorts
    allocated_ports = Field(
        type=OCI.MeetMeConferencingConferencePorts,
        required=False,
    )


class ServiceProviderModifyRequest(OCIRequest):
    """
    Modify the profile for a service provider or enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "default_domain",
            "defaultDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_provider_name",
            "serviceProviderName",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_email",
            "supportEmail",
            str,
            False,
            False,
            False,
        ),
        E(
            "contact",
            "contact",
            OCI.Contact,
            True,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
        E(
            "use_service_provider_languages",
            "useServiceProviderLanguages",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* defaultDomain
    default_domain = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceProviderName
    service_provider_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* supportEmail
    support_email = Field(
        type=str,
        required=False,
    )
    #: OCI.Contact: *Optional* contact
    contact = Field(
        type=OCI.Contact,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )
    #: bool: *Optional* useServiceProviderLanguages
    use_service_provider_languages = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: OCI.DefaultNetworkClassOfService: *Required* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=OCI.DefaultNetworkClassOfService,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "default_network_class_of_service",
            "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: OCI.DefaultNetworkClassOfService: *Required* defaultNetworkClassOfService
    default_network_class_of_service = Field(
        type=OCI.DefaultNetworkClassOfService,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_digit_patterns",
            "includeDigitPatterns",
            bool,
            False,
            True,
            False,
        ),
        E(
            "search_criteria_service_provider_number_portability_query_digit_pattern",
            "searchCriteriaServiceProviderNumberPortabilityQueryDigitPattern",
            OCI.SearchCriteriaServiceProviderNumberPortabilityQueryDigitPattern,
            True,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeDigitPatterns
    include_digit_patterns = Field(
        type=bool,
        required=True,
    )
    #: OCI.SearchCriteriaServiceProviderNumberPortabilityQueryDigitPattern: *Optional*
    #: searchCriteriaServiceProviderNumberPortabilityQueryDigitPattern
    search_criteria_service_provider_number_portability_query_digit_pattern = Field(
        type=OCI.SearchCriteriaServiceProviderNumberPortabilityQueryDigitPattern,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=False,
    )


class ServiceProviderRouteListEnterpriseTrunkNumberRangeAddListRequest(OCIRequest):
    """
    Add number ranges to a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_range",
            "numberRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DNRange: *Optional* numberRange
    number_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "external_system",
            "externalSystem",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* externalSystem
    external_system = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* startDate
    start_date = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Required* endDate
    end_date = Field(
        type=str,
        required=True,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class ServiceProviderScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a service provider schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


class ServiceProviderScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of service provider schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class ServiceProviderScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a service provider schedule.
    The response is either a ``ServiceProviderScheduleGetEventListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class ServiceProviderScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a service provider schedule.
    The response is either a ``ServiceProviderScheduleGetEventResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_event_name",
            "newEventName",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEventName
    new_event_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDate
    start_date = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Optional* endDate
    end_date = Field(
        type=str,
        required=False,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class ServiceProviderScheduleModifyRequest(OCIRequest):
    """
    Modify a service provider schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "new_schedule_name",
            "newScheduleName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Optional* newScheduleName
    new_schedule_name = Field(
        type=str,
        required=False,
    )


class ServiceProviderServicePackAddRequest(OCIRequest):
    """
    Request to add a service pack to a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_description",
            "servicePackDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_available_for_use",
            "isAvailableForUse",
            bool,
            False,
            True,
            False,
        ),
        E(
            "service_pack_quantity",
            "servicePackQuantity",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "service_name",
            "serviceName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* servicePackDescription
    service_pack_description = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isAvailableForUse
    is_available_for_use = Field(
        type=bool,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* servicePackQuantity
    service_pack_quantity = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Optional* serviceName
    service_name = Field(
        type=str,
        required=False,
    )


class ServiceProviderServicePackMigrationTaskGetAvailableGroupListRequest(OCIRequest):
    """
    Requests a list of groups to migrate.
    The response is either ``ServiceProviderServicePackMigrationTaskGetAvailabeGroupListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_service_name_list",
            "userServiceNameList",
            OCI.ReplacementUserServiceList,
            True,
            False,
            False,
        ),
        E(
            "service_pack_name_list",
            "servicePackNameList",
            OCI.ReplacementServicePackNameList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserServiceList: *Optional* userServiceNameList
    user_service_name_list = Field(
        type=OCI.ReplacementUserServiceList,
        required=False,
    )
    #: OCI.ReplacementServicePackNameList: *Optional* servicePackNameList
    service_pack_name_list = Field(
        type=OCI.ReplacementServicePackNameList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_service_name_list",
            "userServiceNameList",
            OCI.ReplacementUserServiceList,
            True,
            False,
            False,
        ),
        E(
            "service_pack_name_list",
            "servicePackNameList",
            OCI.ReplacementServicePackNameList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserServiceList: *Optional* userServiceNameList
    user_service_name_list = Field(
        type=OCI.ReplacementUserServiceList,
        required=False,
    )
    #: OCI.ReplacementServicePackNameList: *Optional* servicePackNameList
    service_pack_name_list = Field(
        type=OCI.ReplacementServicePackNameList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "task_name",
            "taskName",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_selection_type",
            "userSelectionType",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_service_name_list",
            "userServiceNameList",
            OCI.ReplacementUserServiceList,
            True,
            False,
            False,
        ),
        E(
            "service_pack_name_list",
            "servicePackNameList",
            OCI.ReplacementServicePackNameList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* taskName
    task_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* userSelectionType
    user_selection_type = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserServiceList: *Optional* userServiceNameList
    user_service_name_list = Field(
        type=OCI.ReplacementUserServiceList,
        required=False,
    )
    #: OCI.ReplacementServicePackNameList: *Optional* servicePackNameList
    service_pack_name_list = Field(
        type=OCI.ReplacementServicePackNameList,
        required=False,
    )


class ServiceProviderServicePackModifyRequest(OCIRequest):
    """
    Requests to modify a service pack for a service provider.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_name",
            "servicePackName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_service_pack_name",
            "newServicePackName",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_pack_description",
            "servicePackDescription",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_available_for_use",
            "isAvailableForUse",
            bool,
            False,
            False,
            False,
        ),
        E(
            "service_pack_quantity",
            "servicePackQuantity",
            OCI.UnboundedPositiveInt,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* servicePackName
    service_pack_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newServicePackName
    new_service_pack_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* servicePackDescription
    service_pack_description = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isAvailableForUse
    is_available_for_use = Field(
        type=bool,
        required=False,
    )
    #: OCI.UnboundedPositiveInt: *Optional* servicePackQuantity
    service_pack_quantity = Field(
        type=OCI.UnboundedPositiveInt,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            OCI.UnboundedNonNegativeInt,
            True,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            OCI.UnboundedNonNegativeInt,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedNonNegativeInt: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=OCI.UnboundedNonNegativeInt,
        required=False,
    )
    #: OCI.UnboundedNonNegativeInt: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=OCI.UnboundedNonNegativeInt,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_greeting_selection",
            "voicePortalGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_selection",
            "voiceMessagingGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* voicePortalGreetingSelection
    voice_portal_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* voiceMessagingGreetingSelection
    voice_messaging_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class ServiceProviderVoiceMessagingGroupModifyVoicePortalBrandingRequest16(OCIRequest):
    """
    Modify the service provider's voice portal branding settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_greeting_selection",
            "voicePortalGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_selection",
            "voiceMessagingGreetingSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* voicePortalGreetingSelection
    voice_portal_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: str: *Optional* voiceMessagingGreetingSelection
    voice_messaging_greeting_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )


class SystemAccessDeviceAddRequest(OCIRequest):
    """
    Request to add a system-level access device.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "outbound_proxy_server_net_address",
            "outboundProxyServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "stun_server_net_address",
            "stunServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "serial_number",
            "serialNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_url",
            "mobilityManagerProvisioningURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_custom_user_name_password",
            "useCustomUserNamePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "access_device_credentials",
            "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* outboundProxyServerNetAddress
    outbound_proxy_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* stunServerNetAddress
    stun_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serialNumber
    serial_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningURL
    mobility_manager_provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningUserName
    mobility_manager_provisioning_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningPassword
    mobility_manager_provisioning_password = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultOriginatingServiceKey
    mobility_manager_default_originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultTerminatingServiceKey
    mobility_manager_default_terminating_service_key = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useCustomUserNamePassword
    use_custom_user_name_password = Field(
        type=bool,
        required=False,
    )
    #: OCI.DeviceManagementUserNamePassword16: *Optional* accessDeviceCredentials
    access_device_credentials = Field(
        type=OCI.DeviceManagementUserNamePassword16,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=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
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "extended_capture_enabled",
            "extendedCaptureEnabled",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Optional* extendedCaptureEnabled
    extended_capture_enabled = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_service_provider",
            "searchCriteriaExactDeviceServiceProvider",
            OCI.SearchCriteriaExactDeviceServiceProvider,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceServiceProvider: *Optional*
    #: searchCriteriaExactDeviceServiceProvider
    search_criteria_exact_device_service_provider = Field(
        type=OCI.SearchCriteriaExactDeviceServiceProvider,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_access_device_version",
            "searchCriteriaAccessDeviceVersion",
            OCI.SearchCriteriaAccessDeviceVersion,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaAccessDeviceVersion: *Optional*
    #: searchCriteriaAccessDeviceVersion
    search_criteria_access_device_version = Field(
        type=OCI.SearchCriteriaAccessDeviceVersion,
        required=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
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider",
            OCI.SearchCriteriaExactServiceProvider,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_endpoint_type",
            "searchCriteriaExactEndpointType",
            OCI.SearchCriteriaExactEndpointType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_type",
            "searchCriteriaExactUserType",
            OCI.SearchCriteriaExactUserType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_port_number",
            "searchCriteriaExactPortNumber",
            OCI.SearchCriteriaExactPortNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_access_device_endpoint_private_identity",
            "searchCriteriaAccessDeviceEndpointPrivateIdentity",
            OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceProvider: *Optional*
    #: searchCriteriaExactServiceProvider
    search_criteria_exact_service_provider = Field(
        type=OCI.SearchCriteriaExactServiceProvider,
        required=False,
    )
    #: OCI.SearchCriteriaExactEndpointType: *Optional* searchCriteriaExactEndpointType
    search_criteria_exact_endpoint_type = Field(
        type=OCI.SearchCriteriaExactEndpointType,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserType: *Optional* searchCriteriaExactUserType
    search_criteria_exact_user_type = Field(
        type=OCI.SearchCriteriaExactUserType,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactPortNumber: *Optional* searchCriteriaExactPortNumber
    search_criteria_exact_port_number = Field(
        type=OCI.SearchCriteriaExactPortNumber,
        required=False,
    )
    #: OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity: *Optional*
    #: searchCriteriaAccessDeviceEndpointPrivateIdentity
    search_criteria_access_device_endpoint_private_identity = Field(
        type=OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity,
        required=False,
    )


class SystemAccessDeviceModifyRequest(OCIRequest):
    """
    Request to modify a specified system access device.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "protocol",
            "protocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "outbound_proxy_server_net_address",
            "outboundProxyServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "stun_server_net_address",
            "stunServerNetAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "mac_address",
            "macAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "serial_number",
            "serialNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "physical_location",
            "physicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "transport_protocol",
            "transportProtocol",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_url",
            "mobilityManagerProvisioningURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_custom_user_name_password",
            "useCustomUserNamePassword",
            bool,
            False,
            False,
            False,
        ),
        E(
            "access_device_credentials",
            "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* protocol
    protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* outboundProxyServerNetAddress
    outbound_proxy_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* stunServerNetAddress
    stun_server_net_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* macAddress
    mac_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serialNumber
    serial_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* physicalLocation
    physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transportProtocol
    transport_protocol = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningURL
    mobility_manager_provisioning_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningUserName
    mobility_manager_provisioning_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilityManagerProvisioningPassword
    mobility_manager_provisioning_password = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultOriginatingServiceKey
    mobility_manager_default_originating_service_key = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* mobilityManagerDefaultTerminatingServiceKey
    mobility_manager_default_terminating_service_key = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useCustomUserNamePassword
    use_custom_user_name_password = Field(
        type=bool,
        required=False,
    )
    #: OCI.DeviceManagementUserNamePassword16: *Optional* accessDeviceCredentials
    access_device_credentials = Field(
        type=OCI.DeviceManagementUserNamePassword16,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "imrn_number",
            "imrnNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "number_range",
            "numberRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Optional* imrnNumber
    imrn_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* numberRange
    number_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "mobile_network_name",
            "mobileNetworkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "imrn_number",
            "imrnNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "number_range",
            "numberRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* mobileNetworkName
    mobile_network_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* imrnNumber
    imrn_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* numberRange
    number_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "search_criteria_imrn",
            "searchCriteriaIMRN",
            OCI.SearchCriteriaIMRN,
            True,
            False,
            False,
        ),
    )
    #: OCI.SearchCriteriaIMRN: *Optional* searchCriteriaIMRN
    search_criteria_imrn = Field(
        type=OCI.SearchCriteriaIMRN,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "mobile_network_name",
            "mobileNetworkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "search_criteria_imrn",
            "searchCriteriaIMRN",
            OCI.SearchCriteriaIMRN,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* mobileNetworkName
    mobile_network_name = Field(
        type=str,
        required=True,
    )
    #: OCI.SearchCriteriaIMRN: *Optional* searchCriteriaIMRN
    search_criteria_imrn = Field(
        type=OCI.SearchCriteriaIMRN,
        required=False,
    )


class SystemBroadWorksMobilityMobileSubscriberDirectoryNumberGetSummaryListRequest(
    OCIRequest,
):
    """
    Request a summary table of all Mobile Subscriber Directory Numbers in a system.
    The response is either ``SystemBroadWorksMobilityMobileSubscriberDirectoryNumberGetSummaryListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_mobile_network",
            "searchCriteriaExactMobileNetwork",
            OCI.SearchCriteriaExactMobileNetwork,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaMobileSubscriberDirectoryNumber: *Optional*
    #: searchCriteriaMobileSubscriberDirectoryNumber
    search_criteria_mobile_subscriber_directory_number = Field(
        type=OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
        required=False,
    )
    #: OCI.SearchCriteriaExactMobileNetwork: *Optional* searchCriteriaExactMobileNetwork
    search_criteria_exact_mobile_network = Field(
        type=OCI.SearchCriteriaExactMobileNetwork,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaExactOrganizationType: *Optional*
    #: searchCriteriaExactOrganizationType
    search_criteria_exact_organization_type = Field(
        type=OCI.SearchCriteriaExactOrganizationType,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class SystemCallCenterEnhancedReportingBrandingModifyRequest(OCIRequest):
    """
    Request to modify the system branding configuration.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "branding_choice",
            "brandingChoice",
            str,
            False,
            False,
            False,
        ),
        E(
            "custom_branding_file",
            "customBrandingFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Optional* brandingChoice
    branding_choice = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* customBrandingFile
    custom_branding_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class SystemCallCenterEnhancedReportingReportTemplateAddRequest(OCIRequest):
    """
    Request to add a system level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "data_template",
            "dataTemplate",
            str,
            False,
            True,
            False,
        ),
        E(
            "filter_number",
            "filterNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "xslt_template",
            "xsltTemplate",
            OCI.LabeledFileResource,
            True,
            True,
            False,
        ),
        E(
            "scope",
            "scope",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_realtime_report",
            "isRealtimeReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_completion_threshold_param",
            "callCompletionThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_param",
            "shortDurationThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_param",
            "serviceLevelThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_inclusions_param",
            "serviceLevelInclusionsParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_objective_threshold_param",
            "serviceLevelObjectiveThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_param",
            "abandonedCallThresholdParam",
            str,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_param_number",
            "serviceLevelThresholdParamNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_param_number",
            "abandonedCallThresholdParamNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "filter_value",
            "filterValue",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* dataTemplate
    data_template = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* filterNumber
    filter_number = Field(
        type=int,
        required=False,
    )
    #: OCI.LabeledFileResource: *Required* xsltTemplate
    xslt_template = Field(
        type=OCI.LabeledFileResource,
        required=True,
    )
    #: str: *Required* scope
    scope = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnabled
    is_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* isRealtimeReport
    is_realtime_report = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* callCompletionThresholdParam
    call_completion_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* shortDurationThresholdParam
    short_duration_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelThresholdParam
    service_level_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelInclusionsParam
    service_level_inclusions_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* serviceLevelObjectiveThresholdParam
    service_level_objective_threshold_param = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* abandonedCallThresholdParam
    abandoned_call_threshold_param = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* serviceLevelThresholdParamNumber
    service_level_threshold_param_number = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* abandonedCallThresholdParamNumber
    abandoned_call_threshold_param_number = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* filterValue
    filter_value = Field(
        type=str,
        required=False,
    )


class SystemCallCenterEnhancedReportingReportTemplateModifyRequest(OCIRequest):
    """
    Request to modify a system level call center report template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "xslt_template",
            "xsltTemplate",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "scope",
            "scope",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_realtime_report",
            "isRealtimeReport",
            bool,
            False,
            False,
            False,
        ),
        E(
            "filter_number",
            "filterNumber",
            int,
            False,
            False,
            False,
        ),
        E(
            "filter_value",
            "filterValue",
            OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* xsltTemplate
    xslt_template = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* scope
    scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isEnabled
    is_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isRealtimeReport
    is_realtime_report = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* filterNumber
    filter_number = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList: *Optional*
    #: filterValue
    filter_value = Field(
        type=OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_service_provider",
            "searchCriteriaExactCallCenterScheduledReportServiceProvider",
            OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_report_template_name",
            "searchCriteriaCallCenterReportTemplateName",
            OCI.SearchCriteriaCallCenterReportTemplateName,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportServiceProvider
    search_criteria_exact_call_center_scheduled_report_service_provider = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterReportTemplateName: *Optional*
    #: searchCriteriaCallCenterReportTemplateName
    search_criteria_call_center_report_template_name = Field(
        type=OCI.SearchCriteriaCallCenterReportTemplateName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_service_provider",
            "searchCriteriaExactCallCenterScheduledReportServiceProvider",
            OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_report_template_name",
            "searchCriteriaCallCenterReportTemplateName",
            OCI.SearchCriteriaCallCenterReportTemplateName,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportServiceProvider
    search_criteria_exact_call_center_scheduled_report_service_provider = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterReportTemplateName: *Optional*
    #: searchCriteriaCallCenterReportTemplateName
    search_criteria_call_center_report_template_name = Field(
        type=OCI.SearchCriteriaCallCenterReportTemplateName,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_service_provider",
            "searchCriteriaExactCallCenterScheduledReportServiceProvider",
            OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_report_template_name",
            "searchCriteriaCallCenterReportTemplateName",
            OCI.SearchCriteriaCallCenterReportTemplateName,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportServiceProvider
    search_criteria_exact_call_center_scheduled_report_service_provider = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterReportTemplateName: *Optional*
    #: searchCriteriaCallCenterReportTemplateName
    search_criteria_call_center_report_template_name = Field(
        type=OCI.SearchCriteriaCallCenterReportTemplateName,
        required=False,
    )


class SystemCallProcessingPolicyProfileModifyRequest(OCIRequest):
    """
    Modify a call processing policy profile in system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced by ``SystemCallProcessingPolicyProfileModifyRequest20()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "assigned_subscriber_type_list",
            "assignedSubscriberTypeList",
            OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList: *Optional*
    #: assignedSubscriberTypeList
    assigned_subscriber_type_list = Field(
        type=OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList,
        required=False,
    )


class SystemCallProcessingPolicyProfileModifyRequest20(OCIRequest):
    """
    Modify a call processing policy profile in system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "assigned_subscriber_type_list",
            "assignedSubscriberTypeList",
            OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList20: *Optional*
    #: assignedSubscriberTypeList
    assigned_subscriber_type_list = Field(
        type=OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList20,
        required=False,
    )


class SystemCallProcessingPolicyProfileModifyRequest21(OCIRequest):
    """
    Modify a call processing policy profile in system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "assigned_subscriber_type_list",
            "assignedSubscriberTypeList",
            OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList21,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList21: *Optional*
    #: assignedSubscriberTypeList
    assigned_subscriber_type_list = Field(
        type=OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList21,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "classmark",
            "classmark",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_provider_id",
            "searchCriteriaExactServiceProviderId",
            OCI.SearchCriteriaExactServiceProvider,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* classmark
    classmark = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceProvider: *Optional*
    #: searchCriteriaExactServiceProviderId
    search_criteria_exact_service_provider_id = Field(
        type=OCI.SearchCriteriaExactServiceProvider,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class SystemCollaborateModifyRequest(OCIRequest):
    """
    Modify the system level data associated with collaborate services.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "collaborate_room_id_length",
            "collaborateRoomIdLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "instant_room_idle_timeout_seconds",
            "instantRoomIdleTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "collaborate_room_maximum_duration_minutes",
            "collaborateRoomMaximumDurationMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "support_outdial",
            "supportOutdial",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_collaborate_room_participants",
            "maxCollaborateRoomParticipants",
            int,
            False,
            False,
            False,
        ),
        E(
            "collaborate_active_talker_refresh_interval_seconds",
            "collaborateActiveTalkerRefreshIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "terminate_collaborate_after_grace_period",
            "terminateCollaborateAfterGracePeriod",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collaborate_grace_period",
            "collaborateGracePeriod",
            OCI.CollaborateGracePeriodDuration,
            True,
            False,
            False,
        ),
        E(
            "enable_active_collaborate_notification",
            "enableActiveCollaborateNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collaborate_from_address",
            "collaborateFromAddress",
            str,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* collaborateRoomIdLength
    collaborate_room_id_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* instantRoomIdleTimeoutSeconds
    instant_room_idle_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* collaborateRoomMaximumDurationMinutes
    collaborate_room_maximum_duration_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* supportOutdial
    support_outdial = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxCollaborateRoomParticipants
    max_collaborate_room_participants = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* collaborateActiveTalkerRefreshIntervalSeconds
    collaborate_active_talker_refresh_interval_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* terminateCollaborateAfterGracePeriod
    terminate_collaborate_after_grace_period = Field(
        type=bool,
        required=False,
    )
    #: OCI.CollaborateGracePeriodDuration: *Optional* collaborateGracePeriod
    collaborate_grace_period = Field(
        type=OCI.CollaborateGracePeriodDuration,
        required=False,
    )
    #: bool: *Optional* enableActiveCollaborateNotification
    enable_active_collaborate_notification = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* collaborateFromAddress
    collaborate_from_address = Field(
        type=str,
        required=False,
    )


class SystemCommunicationBarringCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList,
            True,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
            True,
            False,
            False,
        ),
        E(
            "match_virtual_on_net_call_type",
            "matchVirtualOnNetCallType",
            OCI.ReplacementVirtualOnNetCallTypeNameList,
            True,
            False,
            False,
        ),
        E(
            "match_public_network",
            "matchPublicNetwork",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_private_network",
            "matchPrivateNetwork",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_inter_network",
            "matchInterNetwork",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_inter_hosting_ne",
            "matchInterHostingNE",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_inter_as",
            "matchInterAS",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_intra_as",
            "matchIntraAS",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_charge_calls",
            "matchChargeCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_no_charge_calls",
            "matchNoChargeCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_group_calls",
            "matchGroupCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_enterprise_calls",
            "matchEnterpriseCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_network_calls",
            "matchNetworkCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_network_url_calls",
            "matchNetworkURLCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_repair_calls",
            "matchRepairCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_emergency_calls",
            "matchEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_internal_calls",
            "matchInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_location",
            "matchLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_roaming",
            "matchRoaming",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_number_portability_status",
            "matchNumberPortabilityStatus",
            OCI.ReplacementNumberPortabilityStatusList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringCallTypeList: *Optional* matchCallType
    match_call_type = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringAlternateCallIndicatorList: *Optional*
    #: matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False,
    )
    #: OCI.ReplacementVirtualOnNetCallTypeNameList: *Optional* matchVirtualOnNetCallType
    match_virtual_on_net_call_type = Field(
        type=OCI.ReplacementVirtualOnNetCallTypeNameList,
        required=False,
    )
    #: bool: *Optional* matchPublicNetwork
    match_public_network = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchPrivateNetwork
    match_private_network = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterNetwork
    match_inter_network = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterHostingNE
    match_inter_hosting_ne = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterAS
    match_inter_as = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchIntraAS
    match_intra_as = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchChargeCalls
    match_charge_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNoChargeCalls
    match_no_charge_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchGroupCalls
    match_group_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchEnterpriseCalls
    match_enterprise_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNetworkCalls
    match_network_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNetworkURLCalls
    match_network_url_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchRepairCalls
    match_repair_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchEmergencyCalls
    match_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInternalCalls
    match_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* matchLocation
    match_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* matchRoaming
    match_roaming = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeSchedule
    time_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementNumberPortabilityStatusList: *Optional*
    #: matchNumberPortabilityStatus
    match_number_portability_status = Field(
        type=OCI.ReplacementNumberPortabilityStatusList,
        required=False,
    )


class SystemCommunicationBarringDigitPatternCriteriaGetPatternListRequest(OCIRequest):
    """
    Get an existing Digit Pattern Criteria.
    The response is either a ``SystemCommunicationBarringDigitPatternCriteriaGetPatternListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_digit_pattern",
            "searchCriteriaDigitPattern",
            OCI.SearchCriteriaDigitPattern,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDigitPattern: *Optional* searchCriteriaDigitPattern
    search_criteria_digit_pattern = Field(
        type=OCI.SearchCriteriaDigitPattern,
        required=False,
    )


class SystemCommunicationBarringIncomingCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Incoming Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_number_portability_status",
            "matchNumberPortabilityStatus",
            OCI.ReplacementNumberPortabilityStatusList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeSchedule
    time_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementNumberPortabilityStatusList: *Optional*
    #: matchNumberPortabilityStatus
    match_number_portability_status = Field(
        type=OCI.ReplacementNumberPortabilityStatusList,
        required=False,
    )


class SystemCommunicationBarringProfileAddRequest(OCIRequest):
    """
    Add a new Communication Barring Profile.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.CommunicationBarringOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.CommunicationBarringRedirectingRule,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringOriginatingRule: *Optional* originatingRule
    originating_rule = Field(
        type=OCI.CommunicationBarringOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringRedirectingRule: *Optional* redirectingRule
    redirecting_rule = Field(
        type=OCI.CommunicationBarringRedirectingRule,
        required=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
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.CommunicationBarringOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.CommunicationBarringRedirectingRule,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.CommunicationBarringIncomingRule,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringOriginatingRule: *Optional* originatingRule
    originating_rule = Field(
        type=OCI.CommunicationBarringOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringRedirectingRule: *Optional* redirectingRule
    redirecting_rule = Field(
        type=OCI.CommunicationBarringRedirectingRule,
        required=False,
    )
    #: str: *Required* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringIncomingRule: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.CommunicationBarringIncomingRule,
        required=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
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.CommunicationBarringOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.CommunicationBarringRedirectingRule,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.CommunicationBarringIncomingRule,
            True,
            False,
            False,
        ),
        E(
            "call_me_now_default_action",
            "callMeNowDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_me_now_default_call_timeout",
            "callMeNowDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_rule",
            "callMeNowRule",
            OCI.CommunicationBarringCallMeNowRule,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringOriginatingRule: *Optional* originatingRule
    originating_rule = Field(
        type=OCI.CommunicationBarringOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringRedirectingRule: *Optional* redirectingRule
    redirecting_rule = Field(
        type=OCI.CommunicationBarringRedirectingRule,
        required=False,
    )
    #: str: *Required* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringIncomingRule: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.CommunicationBarringIncomingRule,
        required=False,
    )
    #: str: *Required* callMeNowDefaultAction
    call_me_now_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* callMeNowDefaultCallTimeout
    call_me_now_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringCallMeNowRule: *Optional* callMeNowRule
    call_me_now_rule = Field(
        type=OCI.CommunicationBarringCallMeNowRule,
        required=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
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.CommunicationBarringOriginatingRule,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.CommunicationBarringRedirectingRule,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.CommunicationBarringIncomingRule19sp1,
            True,
            False,
            False,
        ),
        E(
            "call_me_now_default_action",
            "callMeNowDefaultAction",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_me_now_default_call_timeout",
            "callMeNowDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_rule",
            "callMeNowRule",
            OCI.CommunicationBarringCallMeNowRule,
            True,
            False,
            False,
        ),
        E(
            "apply_to_attended_call_transfers",
            "applyToAttendedCallTransfers",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Required* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringOriginatingRule: *Optional* originatingRule
    originating_rule = Field(
        type=OCI.CommunicationBarringOriginatingRule,
        required=False,
    )
    #: str: *Required* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringRedirectingRule: *Optional* redirectingRule
    redirecting_rule = Field(
        type=OCI.CommunicationBarringRedirectingRule,
        required=False,
    )
    #: str: *Required* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringIncomingRule19sp1: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.CommunicationBarringIncomingRule19sp1,
        required=False,
    )
    #: str: *Required* callMeNowDefaultAction
    call_me_now_default_action = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* callMeNowDefaultCallTimeout
    call_me_now_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.CommunicationBarringCallMeNowRule: *Optional* callMeNowRule
    call_me_now_rule = Field(
        type=OCI.CommunicationBarringCallMeNowRule,
        required=False,
    )
    #: bool: *Required* applyToAttendedCallTransfers
    apply_to_attended_call_transfers = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "auto_rebuild_config_entry",
            "autoRebuildConfigEntry",
            OCI.DeviceManagementAutoRebuildConfigEntry,
            True,
            True,
            False,
        ),
    )
    #: OCI.DeviceManagementAutoRebuildConfigEntry: *Required* autoRebuildConfigEntry
    auto_rebuild_config_entry = Field(
        type=OCI.DeviceManagementAutoRebuildConfigEntry,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "event_queue_type",
            "eventQueueType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_status_in_progress_or_pending",
            "searchCriteriaExactDeviceManagementEventStatusInProgressOrPending",
            OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_status_completed",
            "searchCriteriaExactDeviceManagementEventStatusCompleted",
            OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_action",
            "searchCriteriaExactDeviceManagementEventAction",
            OCI.SearchCriteriaExactDeviceManagementEventAction,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_level",
            "searchCriteriaExactDeviceManagementEventLevel",
            OCI.SearchCriteriaExactDeviceManagementEventLevel,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_management_event_type",
            "searchCriteriaExactDeviceManagementEventType",
            OCI.SearchCriteriaExactDeviceManagementEventType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_management_event_additional_info",
            "searchCriteriaDeviceManagementEventAdditionalInfo",
            OCI.SearchCriteriaDeviceManagementEventAdditionalInfo,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_management_event_login_id",
            "searchCriteriaDeviceManagementEventLoginId",
            OCI.SearchCriteriaDeviceManagementEventLoginId,
            True,
            False,
            False,
        ),
    )
    #: str: *Optional* eventQueueType
    event_queue_type = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending: *Optional*
    #: searchCriteriaExactDeviceManagementEventStatusInProgressOrPending
    search_criteria_exact_device_management_event_status_in_progress_or_pending = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted: *Optional*
    #: searchCriteriaExactDeviceManagementEventStatusCompleted
    search_criteria_exact_device_management_event_status_completed = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventAction: *Optional*
    #: searchCriteriaExactDeviceManagementEventAction
    search_criteria_exact_device_management_event_action = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventAction,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventLevel: *Optional*
    #: searchCriteriaExactDeviceManagementEventLevel
    search_criteria_exact_device_management_event_level = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventLevel,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceManagementEventType: *Optional*
    #: searchCriteriaExactDeviceManagementEventType
    search_criteria_exact_device_management_event_type = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventType,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceManagementEventAdditionalInfo: *Optional*
    #: searchCriteriaDeviceManagementEventAdditionalInfo
    search_criteria_device_management_event_additional_info = Field(
        type=OCI.SearchCriteriaDeviceManagementEventAdditionalInfo,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceManagementEventLoginId: *Optional*
    #: searchCriteriaDeviceManagementEventLoginId
    search_criteria_device_management_event_login_id = Field(
        type=OCI.SearchCriteriaDeviceManagementEventLoginId,
        required=False,
    )


class SystemDeviceProfileAuthenticationLockoutClearRequest(OCIRequest):
    """
    Request to clear device profile authentication lockouts in the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDeviceKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.AccessDeviceKey: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDeviceKey,
        required=True,
    )


class SystemDeviceProfileAuthenticationLockoutGetRequest(OCIRequest):
    """
    Request to get device password authentication lockout data in the system.
    The response is either a ``SystemDeviceProfileAuthenticationLockoutGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_device_type",
            "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaExactOrganizationType: *Optional*
    #: searchCriteriaExactOrganizationType
    search_criteria_exact_organization_type = Field(
        type=OCI.SearchCriteriaExactOrganizationType,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaExactDeviceType: *Optional* searchCriteriaExactDeviceType
    search_criteria_exact_device_type = Field(
        type=OCI.SearchCriteriaExactDeviceType,
        required=False,
    )


class SystemDialableCallerIDCriteriaModifyRequest(OCIRequest):
    """
    Modify a Dialable Caller ID Criteria.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "prefix_digits",
            "prefixDigits",
            str,
            False,
            False,
            False,
        ),
        E(
            "match_call_type",
            "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList,
            True,
            False,
            False,
        ),
        E(
            "match_alternate_call_indicator",
            "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
            True,
            False,
            False,
        ),
        E(
            "match_local_category",
            "matchLocalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_national_category",
            "matchNationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_interlata_category",
            "matchInterlataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_intralata_category",
            "matchIntralataCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_international_category",
            "matchInternationalCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_private_category",
            "matchPrivateCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_emergency_category",
            "matchEmergencyCategory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "match_other_category",
            "matchOtherCategory",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* prefixDigits
    prefix_digits = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringCallTypeList: *Optional* matchCallType
    match_call_type = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringAlternateCallIndicatorList: *Optional*
    #: matchAlternateCallIndicator
    match_alternate_call_indicator = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False,
    )
    #: bool: *Optional* matchLocalCategory
    match_local_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchNationalCategory
    match_national_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInterlataCategory
    match_interlata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchIntralataCategory
    match_intralata_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchInternationalCategory
    match_international_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchPrivateCategory
    match_private_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchEmergencyCategory
    match_emergency_category = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* matchOtherCategory
    match_other_category = Field(
        type=bool,
        required=False,
    )


class SystemDialableCallerIDModifyRequest(OCIRequest):
    """
    Modify the system level Dialable Caller ID criteria list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "criteria_priority_order",
            "criteriaPriorityOrder",
            OCI.DialableCallerIDCriteriaPriorityOrder,
            True,
            False,
            False,
        ),
    )
    #: OCI.DialableCallerIDCriteriaPriorityOrder: *Optional* criteriaPriorityOrder
    criteria_priority_order = Field(
        type=OCI.DialableCallerIDCriteriaPriorityOrder,
        required=False,
    )


class SystemEndpointGetListRequest(OCIRequest):
    """
    Request to search endpoints in the system.
    The response is either ``SystemEndpointGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_type",
            "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaExactOrganizationType: *Optional*
    #: searchCriteriaExactOrganizationType
    search_criteria_exact_organization_type = Field(
        type=OCI.SearchCriteriaExactOrganizationType,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceType: *Optional* searchCriteriaDeviceType
    search_criteria_device_type = Field(
        type=OCI.SearchCriteriaDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )


class SystemFeatureAccessCodeModifyListRequest(OCIRequest):
    """
    Modify default Feature Access Codes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeEntry,
            True,
            False,
            False,
        ),
    )
    #: OCI.FeatureAccessCodeEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeEntry,
        required=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".
    """

    _ELEMENTS = (
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.FeatureAccessCodeModifyEntry,
            True,
            False,
            False,
        ),
    )
    #: OCI.FeatureAccessCodeModifyEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.FeatureAccessCodeModifyEntry,
        required=False,
    )


class SystemFileRepositoryDeviceAddRequest(OCIRequest):
    """
    Add a new file repository.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "root_directory",
            "rootDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "protocol_web_dav",
            "protocolWebDAV",
            OCI.FileRepositoryProtocolWebDAV,
            True,
            True,
            False,
        ),
        E(
            "protocol_ftp",
            "protocolFTP",
            OCI.FileRepositoryProtocolFTP,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* rootDirectory
    root_directory = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: OCI.FileRepositoryProtocolWebDAV: *Required* protocolWebDAV
    protocol_web_dav = Field(
        type=OCI.FileRepositoryProtocolWebDAV,
        required=True,
    )
    #: OCI.FileRepositoryProtocolFTP: *Required* protocolFTP
    protocol_ftp = Field(
        type=OCI.FileRepositoryProtocolFTP,
        required=True,
    )


class SystemFileRepositoryDeviceAddRequest16(OCIRequest):
    """
    Add a new file repository.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "root_directory",
            "rootDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "protocol_web_dav",
            "protocolWebDAV",
            OCI.FileRepositoryProtocolWebDAV,
            True,
            True,
            False,
        ),
        E(
            "protocol_ftp",
            "protocolFTP",
            OCI.FileRepositoryProtocolFTP16,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* rootDirectory
    root_directory = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: OCI.FileRepositoryProtocolWebDAV: *Required* protocolWebDAV
    protocol_web_dav = Field(
        type=OCI.FileRepositoryProtocolWebDAV,
        required=True,
    )
    #: OCI.FileRepositoryProtocolFTP16: *Required* protocolFTP
    protocol_ftp = Field(
        type=OCI.FileRepositoryProtocolFTP16,
        required=True,
    )


class SystemFileRepositoryDeviceAddRequest20(OCIRequest):
    """
    Add a new file repository.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "root_directory",
            "rootDirectory",
            str,
            False,
            False,
            False,
        ),
        E(
            "port",
            "port",
            int,
            False,
            False,
            False,
        ),
        E(
            "protocol_web_dav",
            "protocolWebDAV",
            OCI.FileRepositoryProtocolWebDAV20,
            True,
            True,
            False,
        ),
        E(
            "protocol_ftp",
            "protocolFTP",
            OCI.FileRepositoryProtocolFTP16,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* rootDirectory
    root_directory = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* port
    port = Field(
        type=int,
        required=False,
    )
    #: OCI.FileRepositoryProtocolWebDAV20: *Required* protocolWebDAV
    protocol_web_dav = Field(
        type=OCI.FileRepositoryProtocolWebDAV20,
        required=True,
    )
    #: OCI.FileRepositoryProtocolFTP16: *Required* protocolFTP
    protocol_ftp = Field(
        type=OCI.FileRepositoryProtocolFTP16,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "svc_provider_id",
            "svcProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "line_port",
            "linePort",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_level",
            "deviceLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            False,
            False,
        ),
        E(
            "device_type",
            "deviceType",
            str,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_registration_uri",
            "searchCriteriaRegistrationURI",
            OCI.SearchCriteriaRegistrationURI,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_sip_contact",
            "searchCriteriaSIPContact",
            OCI.SearchCriteriaSIPContact,
            True,
            False,
            False,
        ),
        E(
            "endpoint_type",
            "endpointType",
            str,
            False,
            False,
            False,
        ),
        E(
            "expired",
            "expired",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* svcProviderId
    svc_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* linePort
    line_port = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* deviceLevel
    device_level = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceName
    device_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* deviceType
    device_type = Field(
        type=str,
        required=False,
    )
    #: OCI.SearchCriteriaRegistrationURI: *Optional* searchCriteriaRegistrationURI
    search_criteria_registration_uri = Field(
        type=OCI.SearchCriteriaRegistrationURI,
        required=False,
    )
    #: OCI.SearchCriteriaSIPContact: *Optional* searchCriteriaSIPContact
    search_criteria_sip_contact = Field(
        type=OCI.SearchCriteriaSIPContact,
        required=False,
    )
    #: str: *Optional* endpointType
    endpoint_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* expired
    expired = Field(
        type=bool,
        required=False,
    )


class SystemHolidayScheduleAddRequest(OCIRequest):
    """
    Add a system holiday schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday01",
            "holiday01",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday02",
            "holiday02",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday03",
            "holiday03",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday04",
            "holiday04",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday05",
            "holiday05",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday06",
            "holiday06",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday07",
            "holiday07",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday08",
            "holiday08",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday09",
            "holiday09",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday10",
            "holiday10",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday11",
            "holiday11",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday12",
            "holiday12",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday13",
            "holiday13",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday14",
            "holiday14",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday15",
            "holiday15",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday16",
            "holiday16",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday17",
            "holiday17",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday18",
            "holiday18",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday19",
            "holiday19",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday20",
            "holiday20",
            OCI.Holiday,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )
    #: OCI.Holiday: *Optional* holiday01
    holiday01 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday02
    holiday02 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday03
    holiday03 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday04
    holiday04 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday05
    holiday05 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday06
    holiday06 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday07
    holiday07 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday08
    holiday08 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday09
    holiday09 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday10
    holiday10 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday11
    holiday11 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday12
    holiday12 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday13
    holiday13 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday14
    holiday14 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday15
    holiday15 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday16
    holiday16 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday17
    holiday17 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday18
    holiday18 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday19
    holiday19 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday20
    holiday20 = Field(
        type=OCI.Holiday,
        required=False,
    )


class SystemHolidayScheduleModifyRequest(OCIRequest):
    """
    Modify a system holiday schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_holiday_schedule_name",
            "newHolidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday01",
            "holiday01",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday02",
            "holiday02",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday03",
            "holiday03",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday04",
            "holiday04",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday05",
            "holiday05",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday06",
            "holiday06",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday07",
            "holiday07",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday08",
            "holiday08",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday09",
            "holiday09",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday10",
            "holiday10",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday11",
            "holiday11",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday12",
            "holiday12",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday13",
            "holiday13",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday14",
            "holiday14",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday15",
            "holiday15",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday16",
            "holiday16",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday17",
            "holiday17",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday18",
            "holiday18",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday19",
            "holiday19",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday20",
            "holiday20",
            OCI.Holiday,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newHolidayScheduleName
    new_holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday01
    holiday01 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday02
    holiday02 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday03
    holiday03 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday04
    holiday04 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday05
    holiday05 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday06
    holiday06 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday07
    holiday07 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday08
    holiday08 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday09
    holiday09 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday10
    holiday10 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday11
    holiday11 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday12
    holiday12 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday13
    holiday13 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday14
    holiday14 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday15
    holiday15 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday16
    holiday16 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday17
    holiday17 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday18
    holiday18 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday19
    holiday19 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday20
    holiday20 = Field(
        type=OCI.Holiday,
        required=False,
    )


class SystemHomeNetworkGetListRequest(OCIRequest):
    """
    Get the list of all Home Networks.
    The response is either a ``SystemHomeNetworkGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_home_msc_address",
            "searchCriteriaHomeMscAddress",
            OCI.SearchCriteriaHomeMscAddress,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaHomeMscAddress: *Optional* searchCriteriaHomeMscAddress
    search_criteria_home_msc_address = Field(
        type=OCI.SearchCriteriaHomeMscAddress,
        required=False,
    )


class SystemInterceptUserAddDnListRequest(OCIRequest):
    """
    Request to add an Intercept User number(s) to the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "intercept_dn_list",
            "interceptDNList",
            OCI.InterceptDNListEntry,
            True,
            True,
            False,
        ),
    )
    #: OCI.InterceptDNListEntry: *Required* interceptDNList
    intercept_dn_list = Field(
        type=OCI.InterceptDNListEntry,
        required=True,
    )


class SystemLogConfigModifyRequest(OCIRequest):
    """
    Modify the log configuration file.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "config_file",
            "configFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
    )
    #: OCI.FileResource: *Optional* configFile
    config_file = Field(
        type=OCI.FileResource,
        required=False,
    )


class SystemMediaSetModifyRequest(OCIRequest):
    """
    Request to modify a Media Set.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "set_name",
            "setName",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_name_list",
            "mediaNameList",
            OCI.ReplacementMediaNameList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* setName
    set_name = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementMediaNameList: *Optional* mediaNameList
    media_name_list = Field(
        type=OCI.ReplacementMediaNameList,
        required=False,
    )


class SystemMeetMeConferencingModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Meet-Me Conferencing.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "conference_id_length",
            "conferenceIdLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "moderator_pin_length",
            "moderatorPinLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_conference_end_date_restriction",
            "enableConferenceEndDateRestriction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "conference_end_date_restriction_months",
            "conferenceEndDateRestrictionMonths",
            int,
            False,
            False,
            False,
        ),
        E(
            "delete_expired_conferences_after_hold_period",
            "deleteExpiredConferencesAfterHoldPeriod",
            bool,
            False,
            False,
            False,
        ),
        E(
            "expired_conference_hold_period_days",
            "expiredConferenceHoldPeriodDays",
            int,
            False,
            False,
            False,
        ),
        E(
            "recording_web_app_url",
            "recordingWebAppURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "recording_file_format",
            "recordingFileFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "terminate_after_grace_period",
            "terminateAfterGracePeriod",
            bool,
            False,
            False,
            False,
        ),
        E(
            "conference_grace_period_minutes",
            "conferenceGracePeriodMinutes",
            OCI.MeetMeConferencingConferenceDuration,
            True,
            False,
            False,
        ),
        E(
            "conference_participant_early_entry_minutes",
            "conferenceParticipantEarlyEntryMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_conference_expiry_notification",
            "enableConferenceExpiryNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_active_conference_notification",
            "enableActiveConferenceNotification",
            bool,
            False,
            False,
            False,
        ),
        E(
            "conference_from_address",
            "conferenceFromAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_active_talker_refresh_interval_seconds",
            "conferenceActiveTalkerRefreshIntervalSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: int: *Optional* conferenceIdLength
    conference_id_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* moderatorPinLength
    moderator_pin_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableConferenceEndDateRestriction
    enable_conference_end_date_restriction = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* conferenceEndDateRestrictionMonths
    conference_end_date_restriction_months = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* deleteExpiredConferencesAfterHoldPeriod
    delete_expired_conferences_after_hold_period = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* expiredConferenceHoldPeriodDays
    expired_conference_hold_period_days = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* recordingWebAppURL
    recording_web_app_url = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* recordingFileFormat
    recording_file_format = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* terminateAfterGracePeriod
    terminate_after_grace_period = Field(
        type=bool,
        required=False,
    )
    #: OCI.MeetMeConferencingConferenceDuration: *Optional* conferenceGracePeriodMinutes
    conference_grace_period_minutes = Field(
        type=OCI.MeetMeConferencingConferenceDuration,
        required=False,
    )
    #: int: *Optional* conferenceParticipantEarlyEntryMinutes
    conference_participant_early_entry_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableConferenceExpiryNotification
    enable_conference_expiry_notification = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableActiveConferenceNotification
    enable_active_conference_notification = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* conferenceFromAddress
    conference_from_address = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* conferenceActiveTalkerRefreshIntervalSeconds
    conference_active_talker_refresh_interval_seconds = Field(
        type=int,
        required=False,
    )


class SystemNetworkClassOfServiceAddRequest(OCIRequest):
    """
    Add a new Network Class of Service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "communication_barring_profile0",
            "communicationBarringProfile0",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile1",
            "communicationBarringProfile1",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile2",
            "communicationBarringProfile2",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile3",
            "communicationBarringProfile3",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile4",
            "communicationBarringProfile4",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile5",
            "communicationBarringProfile5",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile6",
            "communicationBarringProfile6",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile7",
            "communicationBarringProfile7",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile8",
            "communicationBarringProfile8",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile9",
            "communicationBarringProfile9",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "network_translation_index",
            "networkTranslationIndex",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile0
    communication_barring_profile0 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile1
    communication_barring_profile1 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile2
    communication_barring_profile2 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile3
    communication_barring_profile3 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile4
    communication_barring_profile4 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile5
    communication_barring_profile5 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile6
    communication_barring_profile6 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile7
    communication_barring_profile7 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile8
    communication_barring_profile8 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile9
    communication_barring_profile9 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: str: *Optional* networkTranslationIndex
    network_translation_index = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=False,
    )


class SystemNetworkClassOfServiceModifyRequest(OCIRequest):
    """
    Modify an existing Network Class of Service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "communication_barring_profile0",
            "communicationBarringProfile0",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile1",
            "communicationBarringProfile1",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile2",
            "communicationBarringProfile2",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile3",
            "communicationBarringProfile3",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile4",
            "communicationBarringProfile4",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile5",
            "communicationBarringProfile5",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile6",
            "communicationBarringProfile6",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile7",
            "communicationBarringProfile7",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile8",
            "communicationBarringProfile8",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "communication_barring_profile9",
            "communicationBarringProfile9",
            OCI.NetworkClassOfServiceCommunicationBarringProfile,
            True,
            False,
            False,
        ),
        E(
            "network_translation_index",
            "networkTranslationIndex",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_processing_policy_profile_name",
            "callProcessingPolicyProfileName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile0
    communication_barring_profile0 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile1
    communication_barring_profile1 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile2
    communication_barring_profile2 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile3
    communication_barring_profile3 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile4
    communication_barring_profile4 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile5
    communication_barring_profile5 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile6
    communication_barring_profile6 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile7
    communication_barring_profile7 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile8
    communication_barring_profile8 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: OCI.NetworkClassOfServiceCommunicationBarringProfile: *Optional*
    #: communicationBarringProfile9
    communication_barring_profile9 = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile,
        required=False,
    )
    #: str: *Optional* networkTranslationIndex
    network_translation_index = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callProcessingPolicyProfileName
    call_processing_policy_profile_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "search_criteria_number_portability_query_digit_pattern",
            "searchCriteriaNumberPortabilityQueryDigitPattern",
            OCI.SearchCriteriaNumberPortabilityQueryDigitPattern,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_number_portability_status",
            "searchCriteriaNumberPortabilityStatus",
            OCI.SearchCriteriaNumberPortabilityStatus,
            True,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
    )
    #: OCI.SearchCriteriaNumberPortabilityQueryDigitPattern: *Optional*
    #: searchCriteriaNumberPortabilityQueryDigitPattern
    search_criteria_number_portability_query_digit_pattern = Field(
        type=OCI.SearchCriteriaNumberPortabilityQueryDigitPattern,
        required=False,
    )
    #: OCI.SearchCriteriaNumberPortabilityStatus: *Optional*
    #: searchCriteriaNumberPortabilityStatus
    search_criteria_number_portability_status = Field(
        type=OCI.SearchCriteriaNumberPortabilityStatus,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )


class SystemOfficeZoneModifyRequest(OCIRequest):
    """
    Modify an existing Office Zone.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_office_zone_name",
            "newOfficeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "replacement_zone_list",
            "replacementZoneList",
            OCI.ReplacementZoneList,
            True,
            False,
            False,
        ),
        E(
            "primary_zone_name",
            "primaryZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newOfficeZoneName
    new_office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementZoneList: *Optional* replacementZoneList
    replacement_zone_list = Field(
        type=OCI.ReplacementZoneList,
        required=False,
    )
    #: str: *Optional* primaryZoneName
    primary_zone_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "carrier",
            "carrier",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_name",
            "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider",
            OCI.SearchCriteriaExactServiceProvider,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* carrier
    carrier = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupName: *Optional* searchCriteriaGroupName
    search_criteria_group_name = Field(
        type=OCI.SearchCriteriaGroupName,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceProvider: *Optional*
    #: searchCriteriaExactServiceProvider
    search_criteria_exact_service_provider = Field(
        type=OCI.SearchCriteriaExactServiceProvider,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "carrier",
            "carrier",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* carrier
    carrier = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class SystemRoamingNetworkGetListRequest(OCIRequest):
    """
    Get the list of all Roaming Networks.
    The response is either a ``SystemRoamingNetworkGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_roaming_msc_address",
            "searchCriteriaRoamingMscAddress",
            OCI.SearchCriteriaRoamingMscAddress,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaRoamingMscAddress: *Optional* searchCriteriaRoamingMscAddress
    search_criteria_roaming_msc_address = Field(
        type=OCI.SearchCriteriaRoamingMscAddress,
        required=False,
    )


class SystemSIPAuthenticationEndpointLockoutClearRequest(OCIRequest):
    """
    Request to clear sip authentication endpoint lockouts in the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_endpoint_key",
            "userEndpointKey",
            OCI.UserEndpointKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.UserEndpointKey: *Required* userEndpointKey
    user_endpoint_key = Field(
        type=OCI.UserEndpointKey,
        required=True,
    )


class SystemSIPAuthenticationEndpointLockoutGetRequest(OCIRequest):
    """
    Request to get sip authentication endpoint lockout data in the system.
    The response is either a ``SystemSIPAuthenticationEndpointLockoutGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaExactOrganizationType: *Optional*
    #: searchCriteriaExactOrganizationType
    search_criteria_exact_organization_type = Field(
        type=OCI.SearchCriteriaExactOrganizationType,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )


class SystemSIPAuthenticationTrunkGroupLockoutClearRequest(OCIRequest):
    """
    Request to clear sip authentication trunk group lockouts in the system.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_groupkey",
            "trunkGroupkey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupkey
    trunk_groupkey = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )


class SystemSIPAuthenticationTrunkGroupLockoutGetRequest(OCIRequest):
    """
    Request to get sip authentication trunk group lockout data in the system.
    The response is either a ``SystemSIPAuthenticationTrunkGroupLockoutGetResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_trunk_group_name",
            "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaExactOrganizationType: *Optional*
    #: searchCriteriaExactOrganizationType
    search_criteria_exact_organization_type = Field(
        type=OCI.SearchCriteriaExactOrganizationType,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaTrunkGroupName: *Optional* searchCriteriaTrunkGroupName
    search_criteria_trunk_group_name = Field(
        type=OCI.SearchCriteriaTrunkGroupName,
        required=False,
    )


class SystemSIPDeviceTypeAddRequest(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_override",
            "authenticationOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* authenticationOverride
    authentication_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions,
        required=False,
    )


class SystemSIPDeviceTypeAddRequest14sp1(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeAddRequest14sp2()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_override",
            "authenticationOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* authenticationOverride
    authentication_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeAddRequest14sp2(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeAddRequest14sp3()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )


class SystemSIPDeviceTypeAddRequest14sp3(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeAddRequest14sp6()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "tdm_overlay",
            "tdmOverlay",
            bool,
            False,
            True,
            False,
        ),
        E(
            "supports_broad_works_info_for_call_waiting",
            "supportsBroadWorksINFOForCallWaiting",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* tdmOverlay
    tdm_overlay = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportsBroadWorksINFOForCallWaiting
    supports_broad_works_info_for_call_waiting = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeFileAddRequest(OCIRequest):
    """
    Request to add a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeFileAddRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "remote_file_format",
            "remoteFileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_category",
            "fileCategory",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_file_customization",
            "allowFileCustomization",
            bool,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* remoteFileFormat
    remote_file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCategory
    file_category = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allowFileCustomization
    allow_file_customization = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* fileSource
    file_source = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Required* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )


class SystemSIPDeviceTypeFileAddRequest14sp8(OCIRequest):
    """
    Request to add a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "remote_file_format",
            "remoteFileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_category",
            "fileCategory",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_file_customization",
            "allowFileCustomization",
            bool,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* remoteFileFormat
    remote_file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCategory
    file_category = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allowFileCustomization
    allow_file_customization = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* fileSource
    file_source = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Required* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )


class SystemSIPDeviceTypeFileAddRequest16sp1(OCIRequest):
    """
    Replaced By ``SystemSIPDeviceTypeFileAddRequest18()``.
    Request to add a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "remote_file_format",
            "remoteFileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_category",
            "fileCategory",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_customization",
            "fileCustomization",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* remoteFileFormat
    remote_file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCategory
    file_category = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCustomization
    file_customization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileSource
    file_source = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Required* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )


class SystemSIPDeviceTypeFileAddRequest18(OCIRequest):
    """
    Request to add a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "remote_file_format",
            "remoteFileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_category",
            "fileCategory",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_customization",
            "fileCustomization",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_http",
            "allowHttp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_https",
            "allowHttps",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_tftp",
            "allowTftp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_caching",
            "enableCaching",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* remoteFileFormat
    remote_file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCategory
    file_category = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCustomization
    file_customization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileSource
    file_source = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Required* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowHttp
    allow_http = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowHttps
    allow_https = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTftp
    allow_tftp = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableCaching
    enable_caching = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeFileAddRequest19(OCIRequest):
    """
    Request to add a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "remote_file_format",
            "remoteFileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_category",
            "fileCategory",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_customization",
            "fileCustomization",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_http",
            "allowHttp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_https",
            "allowHttps",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_tftp",
            "allowTftp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_caching",
            "enableCaching",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_upload_from_device",
            "allowUploadFromDevice",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* remoteFileFormat
    remote_file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCategory
    file_category = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCustomization
    file_customization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileSource
    file_source = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Required* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowHttp
    allow_http = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowHttps
    allow_https = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTftp
    allow_tftp = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableCaching
    enable_caching = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUploadFromDevice
    allow_upload_from_device = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeFileAddRequest20(OCIRequest):
    """
    Request to add a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "remote_file_format",
            "remoteFileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_category",
            "fileCategory",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_customization",
            "fileCustomization",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_http",
            "allowHttp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_https",
            "allowHttps",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_tftp",
            "allowTftp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_caching",
            "enableCaching",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_upload_from_device",
            "allowUploadFromDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "default_extended_file_capture_mode",
            "defaultExtendedFileCaptureMode",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* remoteFileFormat
    remote_file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCategory
    file_category = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileCustomization
    file_customization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileSource
    file_source = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Required* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowHttp
    allow_http = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowHttps
    allow_https = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTftp
    allow_tftp = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableCaching
    enable_caching = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUploadFromDevice
    allow_upload_from_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* defaultExtendedFileCaptureMode
    default_extended_file_capture_mode = Field(
        type=bool,
        required=False,
    )


class SystemSIPDeviceTypeFileModifyRequest(OCIRequest):
    """
    Request to modify a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeFileModifyRequest14sp8()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_type",
            "fileType",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_file_customization",
            "allowFileCustomization",
            bool,
            False,
            False,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileType
    file_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* allowFileCustomization
    allow_file_customization = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Optional* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )


class SystemSIPDeviceTypeFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a sip device type file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_file_customization",
            "allowFileCustomization",
            bool,
            False,
            False,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* allowFileCustomization
    allow_file_customization = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Optional* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "file_customization",
            "fileCustomization",
            str,
            False,
            False,
            False,
        ),
        E(
            "file_source",
            "fileSource",
            str,
            False,
            False,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            False,
            False,
        ),
        E(
            "use_http_digest_authentication",
            "useHttpDigestAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_based_file_authentication",
            "macBasedFileAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_in_non_request_uri",
            "macInNonRequestURI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mac_format_in_non_request_uri",
            "macFormatInNonRequestURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_http",
            "allowHttp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_https",
            "allowHttps",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_tftp",
            "allowTftp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_caching",
            "enableCaching",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_upload_from_device",
            "allowUploadFromDevice",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_extended_file_capture_mode",
            "defaultExtendedFileCaptureMode",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* fileCustomization
    file_customization = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* fileSource
    file_source = Field(
        type=str,
        required=False,
    )
    #: OCI.FileResource: *Optional* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=False,
    )
    #: bool: *Optional* useHttpDigestAuthentication
    use_http_digest_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* macBasedFileAuthentication
    mac_based_file_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* userNamePasswordFileAuthentication
    user_name_password_file_authentication = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* macInNonRequestURI
    mac_in_non_request_uri = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* macFormatInNonRequestURI
    mac_format_in_non_request_uri = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowHttp
    allow_http = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowHttps
    allow_https = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowTftp
    allow_tftp = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCaching
    enable_caching = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUploadFromDevice
    allow_upload_from_device = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* defaultExtendedFileCaptureMode
    default_extended_file_capture_mode = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_device_type",
            "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_signaling_address_type",
            "searchCriteriaExactSignalingAddressType",
            OCI.SearchCriteriaExactSignalingAddressType,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceType: *Optional* searchCriteriaDeviceType
    search_criteria_device_type = Field(
        type=OCI.SearchCriteriaDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaExactSignalingAddressType: *Optional*
    #: searchCriteriaExactSignalingAddressType
    search_criteria_exact_signaling_address_type = Field(
        type=OCI.SearchCriteriaExactSignalingAddressType,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "language_mapping",
            "languageMapping",
            OCI.DeviceManagementLanguageMapping,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.DeviceManagementLanguageMapping: *Optional* languageMapping
    language_mapping = Field(
        type=OCI.DeviceManagementLanguageMapping,
        required=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.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* startDate
    start_date = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Required* endDate
    end_date = Field(
        type=str,
        required=True,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class SystemScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a system schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


class SystemScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of system schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class SystemScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a system schedule.
    The response is either a ``SystemScheduleGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class SystemScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a system schedule.
    The response is either a ``SystemScheduleGetEventResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_event_name",
            "newEventName",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEventName
    new_event_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDate
    start_date = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Optional* endDate
    end_date = Field(
        type=str,
        required=False,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class SystemScheduleModifyRequest(OCIRequest):
    """
    Modify a system schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "new_schedule_name",
            "newScheduleName",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Optional* newScheduleName
    new_schedule_name = Field(
        type=str,
        required=False,
    )


class SystemSecurityClassificationAddClassificationRequest(OCIRequest):
    """
    Add a new Security Classification
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "security_classification_name",
            "securityClassificationName",
            str,
            False,
            True,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledMediaFileResource,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* securityClassificationName
    security_classification_name = Field(
        type=str,
        required=True,
    )
    #: OCI.LabeledMediaFileResource: *Required* audioFile
    audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=True,
    )


class SystemSecurityClassificationGetClassificationTrunkGroupUsageListRequest(
    OCIRequest,
):
    """
    Get a list of users that currently have the specified Security Classification assigned.
    The response is either ``SystemSecurityClassificationGetClassificationTrunkGroupUsageListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "security_classification",
            "securityClassification",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_trunk_group_name",
            "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_service_provider_id",
            "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* securityClassification
    security_classification = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaTrunkGroupName: *Optional* searchCriteriaTrunkGroupName
    search_criteria_trunk_group_name = Field(
        type=OCI.SearchCriteriaTrunkGroupName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaServiceProviderId: *Optional* searchCriteriaServiceProviderId
    search_criteria_service_provider_id = Field(
        type=OCI.SearchCriteriaServiceProviderId,
        required=False,
    )
    #: OCI.SearchCriteriaExactOrganizationType: *Optional*
    #: searchCriteriaExactOrganizationType
    search_criteria_exact_organization_type = Field(
        type=OCI.SearchCriteriaExactOrganizationType,
        required=False,
    )


class SystemSecurityClassificationGetClassificationUserUsageListRequest(OCIRequest):
    """
    Get a list of users that currently have the specified Security Classification assigned.
    The response is either ``SystemSecurityClassificationGetClassificationUserUsageListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "security_classification",
            "securityClassification",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* securityClassification
    security_classification = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class SystemSecurityClassificationModifyClassificationRequest(OCIRequest):
    """
    Modify a Security Classification
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "security_classification_name",
            "securityClassificationName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_security_classification_name",
            "newSecurityClassificationName",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* securityClassificationName
    security_classification_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newSecurityClassificationName
    new_security_classification_name = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_service_code",
            "searchCriteriaServiceCode",
            OCI.SearchCriteriaServiceCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_service_code_description",
            "searchCriteriaServiceCodeDescription",
            OCI.SearchCriteriaServiceCodeDescription,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaServiceCode: *Optional* searchCriteriaServiceCode
    search_criteria_service_code = Field(
        type=OCI.SearchCriteriaServiceCode,
        required=False,
    )
    #: OCI.SearchCriteriaServiceCodeDescription: *Optional*
    #: searchCriteriaServiceCodeDescription
    search_criteria_service_code_description = Field(
        type=OCI.SearchCriteriaServiceCodeDescription,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "dn_range",
            "dnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* dnRange
    dn_range = Field(
        type=OCI.DNRange,
        required=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.
    """

    _ELEMENTS = (
        E(
            "system_voice_portal_id",
            "systemVoicePortalId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_name",
            "callingLineIdName",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "public_user_identity",
            "publicUserIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_voice_portal_number",
            "networkVoicePortalNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_identification_by_phone_number_or_voice_mail_aliases_on_login",
            "allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_voice_portal_wizard",
            "useVoicePortalWizard",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_voice_portal_default_greeting",
            "useVoicePortalDefaultGreeting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "use_voice_messaging_default_greeting",
            "useVoiceMessagingDefaultGreeting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* systemVoicePortalId
    system_voice_portal_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdName
    calling_line_id_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeZone
    time_zone = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* publicUserIdentity
    public_user_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkVoicePortalNumber
    network_voice_portal_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin
    allow_identification_by_phone_number_or_voice_mail_aliases_on_login = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useVoicePortalWizard
    use_voice_portal_wizard = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useVoicePortalDefaultGreeting
    use_voice_portal_default_greeting = Field(
        type=bool,
        required=True,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Required* useVoiceMessagingDefaultGreeting
    use_voice_messaging_default_greeting = Field(
        type=bool,
        required=True,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )


class SystemSystemVoicePortalModifyRequest(OCIRequest):
    """
    Request to update a System  Voice portal instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "system_voice_portal_id",
            "systemVoicePortalId",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_system_voice_portal_id",
            "newSystemVoicePortalId",
            str,
            False,
            False,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_name",
            "callingLineIdName",
            str,
            False,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "public_user_identity",
            "publicUserIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_voice_portal_number",
            "networkVoicePortalNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_identification_by_phone_number_or_voice_mail_aliases_on_login",
            "allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_voice_portal_wizard",
            "useVoicePortalWizard",
            bool,
            False,
            False,
            False,
        ),
        E(
            "become_default_system_voice_portal",
            "becomeDefaultSystemVoicePortal",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_voice_portal_default_greeting",
            "useVoicePortalDefaultGreeting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_greeting_file",
            "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "use_voice_messaging_default_greeting",
            "useVoiceMessagingDefaultGreeting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_messaging_greeting_file",
            "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* systemVoicePortalId
    system_voice_portal_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newSystemVoicePortalId
    new_system_voice_portal_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* name
    name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdName
    calling_line_id_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* publicUserIdentity
    public_user_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkVoicePortalNumber
    network_voice_portal_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin
    allow_identification_by_phone_number_or_voice_mail_aliases_on_login = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useVoicePortalWizard
    use_voice_portal_wizard = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* becomeDefaultSystemVoicePortal
    become_default_system_voice_portal = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useVoicePortalDefaultGreeting
    use_voice_portal_default_greeting = Field(
        type=bool,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voicePortalGreetingFile
    voice_portal_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Optional* useVoiceMessagingDefaultGreeting
    use_voice_messaging_default_greeting = Field(
        type=bool,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* voiceMessagingGreetingFile
    voice_messaging_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=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.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_system_service_dn",
            "searchCriteriaSystemServiceDn",
            OCI.SearchCriteriaSystemServiceDn,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaSystemServiceDn: *Optional* searchCriteriaSystemServiceDn
    search_criteria_system_service_dn = Field(
        type=OCI.SearchCriteriaSystemServiceDn,
        required=False,
    )


class SystemTimeScheduleAddRequest(OCIRequest):
    """
    Add a system time schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_interval01",
            "timeInterval01",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval02",
            "timeInterval02",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval03",
            "timeInterval03",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval04",
            "timeInterval04",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval05",
            "timeInterval05",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval06",
            "timeInterval06",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval07",
            "timeInterval07",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval08",
            "timeInterval08",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval09",
            "timeInterval09",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval10",
            "timeInterval10",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval11",
            "timeInterval11",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval12",
            "timeInterval12",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval13",
            "timeInterval13",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval14",
            "timeInterval14",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval15",
            "timeInterval15",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval16",
            "timeInterval16",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval17",
            "timeInterval17",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval18",
            "timeInterval18",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval19",
            "timeInterval19",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval20",
            "timeInterval20",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeInterval: *Optional* timeInterval01
    time_interval01 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval02
    time_interval02 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval03
    time_interval03 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval04
    time_interval04 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval05
    time_interval05 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval06
    time_interval06 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval07
    time_interval07 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval08
    time_interval08 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval09
    time_interval09 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval10
    time_interval10 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval11
    time_interval11 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval12
    time_interval12 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval13
    time_interval13 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval14
    time_interval14 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval15
    time_interval15 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval16
    time_interval16 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval17
    time_interval17 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval18
    time_interval18 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval19
    time_interval19 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval20
    time_interval20 = Field(
        type=OCI.TimeInterval,
        required=False,
    )


class SystemTimeScheduleModifyRequest(OCIRequest):
    """
    Modify a specified system time schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_time_schedule_name",
            "newTimeScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_interval01",
            "timeInterval01",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval02",
            "timeInterval02",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval03",
            "timeInterval03",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval04",
            "timeInterval04",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval05",
            "timeInterval05",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval06",
            "timeInterval06",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval07",
            "timeInterval07",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval08",
            "timeInterval08",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval09",
            "timeInterval09",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval10",
            "timeInterval10",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval11",
            "timeInterval11",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval12",
            "timeInterval12",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval13",
            "timeInterval13",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval14",
            "timeInterval14",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval15",
            "timeInterval15",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval16",
            "timeInterval16",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval17",
            "timeInterval17",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval18",
            "timeInterval18",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval19",
            "timeInterval19",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval20",
            "timeInterval20",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newTimeScheduleName
    new_time_schedule_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval01
    time_interval01 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval02
    time_interval02 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval03
    time_interval03 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval04
    time_interval04 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval05
    time_interval05 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval06
    time_interval06 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval07
    time_interval07 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval08
    time_interval08 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval09
    time_interval09 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval10
    time_interval10 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval11
    time_interval11 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval12
    time_interval12 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval13
    time_interval13 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval14
    time_interval14 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval15
    time_interval15 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval16
    time_interval16 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval17
    time_interval17 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval18
    time_interval18 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval19
    time_interval19 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval20
    time_interval20 = Field(
        type=OCI.TimeInterval,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_system_service_dn",
            "searchCriteriaSystemServiceDn",
            OCI.SearchCriteriaSystemServiceDn,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaSystemServiceDn: *Optional* searchCriteriaSystemServiceDn
    search_criteria_system_service_dn = Field(
        type=OCI.SearchCriteriaSystemServiceDn,
        required=False,
    )


class SystemZoneAddRequest(OCIRequest):
    """
    Add a Zone and optional Net Addresses and Physical Locations.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address_range",
            "netAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
        E(
            "location_based_physical_location",
            "locationBasedPhysicalLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_zone_physical_location",
            "callingZonePhysicalLocation",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* netAddressRange
    net_address_range = Field(
        type=OCI.IPAddressRange,
        required=False,
    )
    #: str: *Optional* locationBasedPhysicalLocation
    location_based_physical_location = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingZonePhysicalLocation
    calling_zone_physical_location = Field(
        type=str,
        required=False,
    )


class SystemZoneCallingRestrictionsNetAddressAddListRequest(OCIRequest):
    """
    Adds a list of IP addresses to a zone
    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``SystemZoneNetAddressAddListRequest()``
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address_range",
            "netAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* netAddressRange
    net_address_range = Field(
        type=OCI.IPAddressRange,
        required=False,
    )


class SystemZoneCallingRestrictionsNetAddressDeleteListRequest(OCIRequest):
    """
    Deletes a list of IP addresses from a zone
    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``SystemZoneNetAddressDeleteListRequest()``
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address_range",
            "netAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* netAddressRange
    net_address_range = Field(
        type=OCI.IPAddressRange,
        required=False,
    )


class SystemZoneCallingRestrictionsNetAddressGetListRequest(OCIRequest):
    """
    Gets a list of IP Addresses and/or Ranges assigned to a zone
    Response is ``SystemZoneCallingRestrictionsNetAddressGetListResponse()``.
    Replaced By ``SystemZoneNetAddressGetListRequest()``
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_zone_ip_address",
            "searchCriteriaZoneIPAddress",
            OCI.SearchCriteriaZoneIPAddress,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaZoneIPAddress: *Optional* searchCriteriaZoneIPAddress
    search_criteria_zone_ip_address = Field(
        type=OCI.SearchCriteriaZoneIPAddress,
        required=False,
    )


class SystemZoneLocationBasedPhysicalLocationGetListRequest(OCIRequest):
    """
    Gets a list of physical locations assigned to a zone.
    Response is ``SystemZoneLocationBasedPhysicalLocationGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_physical_location",
            "searchCriteriaPhysicalLocation",
            OCI.SearchCriteriaPhysicalLocation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaPhysicalLocation: *Optional* searchCriteriaPhysicalLocation
    search_criteria_physical_location = Field(
        type=OCI.SearchCriteriaPhysicalLocation,
        required=False,
    )


class SystemZoneNetAddressAddListRequest(OCIRequest):
    """
    Adds a list of IP addresses to a zone
    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address_range",
            "netAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* netAddressRange
    net_address_range = Field(
        type=OCI.IPAddressRange,
        required=False,
    )


class SystemZoneNetAddressDeleteListRequest(OCIRequest):
    """
    Deletes a list of IP addresses from a zone
    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "net_address",
            "netAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "net_address_range",
            "netAddressRange",
            OCI.IPAddressRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* netAddress
    net_address = Field(
        type=str,
        required=False,
    )
    #: OCI.IPAddressRange: *Optional* netAddressRange
    net_address_range = Field(
        type=OCI.IPAddressRange,
        required=False,
    )


class SystemZoneNetAddressGetListRequest(OCIRequest):
    """
    Gets a list of IP Addresses and/or Ranges assigned to a zone.
    Response is ``SystemZoneNetAddressGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "zone_name",
            "zoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_zone_ip_address",
            "searchCriteriaZoneIPAddress",
            OCI.SearchCriteriaZoneIPAddress,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* zoneName
    zone_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaZoneIPAddress: *Optional* searchCriteriaZoneIPAddress
    search_criteria_zone_ip_address = Field(
        type=OCI.SearchCriteriaZoneIPAddress,
        required=False,
    )


class UserAccessDeviceFileGetListRequest(OCIRequest):
    """
    Request to get the list of Device Management user modifiable files.
    The response is either ``UserAccessDeviceFileGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )


class UserAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a user modifiable file.
    The response is either ``UserAccessDeviceFileGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )


class UserAccessDeviceFileModifyRequest(OCIRequest):
    """
    Request to modify a user modifiable access device file.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
        E(
            "file_format",
            "fileFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "upload_file",
            "uploadFile",
            OCI.FileResource,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )
    #: str: *Required* fileFormat
    file_format = Field(
        type=str,
        required=True,
    )
    #: OCI.FileResource: *Required* uploadFile
    upload_file = Field(
        type=OCI.FileResource,
        required=True,
    )


class UserAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific user SIP device that supports the reset operation.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )


class UserAlternateNumbersModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Alternate Numbers.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "distinctive_ring",
            "distinctiveRing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alternate_entry01",
            "alternateEntry01",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry02",
            "alternateEntry02",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry03",
            "alternateEntry03",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry04",
            "alternateEntry04",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry05",
            "alternateEntry05",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry06",
            "alternateEntry06",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry07",
            "alternateEntry07",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry08",
            "alternateEntry08",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry09",
            "alternateEntry09",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
        E(
            "alternate_entry10",
            "alternateEntry10",
            OCI.AlternateNumberEntry21,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* distinctiveRing
    distinctive_ring = Field(
        type=bool,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry01
    alternate_entry01 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry02
    alternate_entry02 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry03
    alternate_entry03 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry04
    alternate_entry04 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry05
    alternate_entry05 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry06
    alternate_entry06 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry07
    alternate_entry07 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry08
    alternate_entry08 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry09
    alternate_entry09 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )
    #: OCI.AlternateNumberEntry21: *Optional* alternateEntry10
    alternate_entry10 = Field(
        type=OCI.AlternateNumberEntry21,
        required=False,
    )


class UserAnnouncementFileAddRequest(OCIRequest):
    """
    Add an announcement to the user announcement repository
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_name",
            "announcementFileName",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file",
            "announcementFile",
            OCI.LabeledMediaFileResource,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* announcementFileName
    announcement_file_name = Field(
        type=str,
        required=True,
    )
    #: OCI.LabeledMediaFileResource: *Required* announcementFile
    announcement_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=True,
    )


class UserAnnouncementFileDeleteListRequest(OCIRequest):
    """
    Delete one or more announcements from the user announcement repository
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_key",
            "announcementFileKey",
            OCI.AnnouncementFileKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileKey: *Required* announcementFileKey
    announcement_file_key = Field(
        type=OCI.AnnouncementFileKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_type",
            "announcementFileType",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_announcement_table",
            "includeAnnouncementTable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_announcement_file_name",
            "searchCriteriaAnnouncementFileName",
            OCI.SearchCriteriaAnnouncementFileName,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementFileType
    announcement_file_type = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* includeAnnouncementTable
    include_announcement_table = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaAnnouncementFileName: *Optional*
    #: searchCriteriaAnnouncementFileName
    search_criteria_announcement_file_name = Field(
        type=OCI.SearchCriteriaAnnouncementFileName,
        required=False,
    )


class UserAnnouncementFileGetRequest(OCIRequest):
    """
    Request to get the announcement repository file information.
    The response is either ``UserAnnouncementFileGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_key",
            "announcementFileKey",
            OCI.AnnouncementFileKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileKey: *Required* announcementFileKey
    announcement_file_key = Field(
        type=OCI.AnnouncementFileKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_file_key",
            "announcementFileKey",
            OCI.AnnouncementFileKey,
            True,
            True,
            False,
        ),
        E(
            "new_announcement_file_name",
            "newAnnouncementFileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "announcement_file",
            "announcementFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileKey: *Required* announcementFileKey
    announcement_file_key = Field(
        type=OCI.AnnouncementFileKey,
        required=True,
    )
    #: str: *Optional* newAnnouncementFileName
    new_announcement_file_name = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* announcementFile
    announcement_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )


class UserAttendantConsoleModifyRequest(OCIRequest):
    """
    Modify user's attendant console settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "launch_on_login",
            "launchOnLogin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_user_config_call_details",
            "allowUserConfigCallDetails",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_user_view_call_details",
            "allowUserViewCallDetails",
            bool,
            False,
            False,
            False,
        ),
        E(
            "display_column_list",
            "displayColumnList",
            OCI.AttendantConsoleReplacementDisplayColumnList,
            True,
            False,
            False,
        ),
        E(
            "monitored_user_id_list",
            "monitoredUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* launchOnLogin
    launch_on_login = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUserConfigCallDetails
    allow_user_config_call_details = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUserViewCallDetails
    allow_user_view_call_details = Field(
        type=bool,
        required=False,
    )
    #: OCI.AttendantConsoleReplacementDisplayColumnList: *Optional* displayColumnList
    display_column_list = Field(
        type=OCI.AttendantConsoleReplacementDisplayColumnList,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* monitoredUserIdList
    monitored_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserBroadWorksAnywhereAddSelectiveCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's BroadWorks Anywhere phone number.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserBroadWorksAnywhereModifyPhoneNumberRequest(OCIRequest):
    """
    Modify a BroadWorks Anywhere phone number
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_phone_number",
            "newPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outbound_alternate_number",
            "outboundAlternateNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "broadworks_call_control",
            "broadworksCallControl",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_diversion_inhibitor",
            "useDiversionInhibitor",
            bool,
            False,
            False,
            False,
        ),
        E(
            "answer_confirmation_required",
            "answerConfirmationRequired",
            bool,
            False,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newPhoneNumber
    new_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* outboundAlternateNumber
    outbound_alternate_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* broadworksCallControl
    broadworks_call_control = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useDiversionInhibitor
    use_diversion_inhibitor = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* answerConfirmationRequired
    answer_confirmation_required = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_mobile_identity_call_anchoring",
            "useMobileIdentityCallAnchoring",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prevent_calls_to_own_mobiles",
            "preventCallsToOwnMobiles",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mobile_identity",
            "mobileIdentity",
            OCI.BroadWorksMobilityUserMobileIdentityModifyEntry,
            True,
            False,
            False,
        ),
        E(
            "profile_identity_devices_to_ring",
            "profileIdentityDevicesToRing",
            str,
            False,
            False,
            False,
        ),
        E(
            "profile_identity_include_shared_call_appearance",
            "profileIdentityIncludeSharedCallAppearance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "profile_identity_include_broadworks_anywhere",
            "profileIdentityIncludeBroadworksAnywhere",
            bool,
            False,
            False,
            False,
        ),
        E(
            "profile_identity_include_executive_assistant",
            "profileIdentityIncludeExecutiveAssistant",
            bool,
            False,
            False,
            False,
        ),
        E(
            "profile_identity_mobility_numbers_alerted",
            "profileIdentityMobilityNumbersAlerted",
            OCI.BroadWorksMobilityAlertingMobileNumberReplacementList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMobileIdentityCallAnchoring
    use_mobile_identity_call_anchoring = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* preventCallsToOwnMobiles
    prevent_calls_to_own_mobiles = Field(
        type=bool,
        required=False,
    )
    #: OCI.BroadWorksMobilityUserMobileIdentityModifyEntry: *Optional* mobileIdentity
    mobile_identity = Field(
        type=OCI.BroadWorksMobilityUserMobileIdentityModifyEntry,
        required=False,
    )
    #: str: *Optional* profileIdentityDevicesToRing
    profile_identity_devices_to_ring = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* profileIdentityIncludeSharedCallAppearance
    profile_identity_include_shared_call_appearance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* profileIdentityIncludeBroadworksAnywhere
    profile_identity_include_broadworks_anywhere = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* profileIdentityIncludeExecutiveAssistant
    profile_identity_include_executive_assistant = Field(
        type=bool,
        required=False,
    )
    #: OCI.BroadWorksMobilityAlertingMobileNumberReplacementList: *Optional*
    #: profileIdentityMobilityNumbersAlerted
    profile_identity_mobility_numbers_alerted = Field(
        type=OCI.BroadWorksMobilityAlertingMobileNumberReplacementList,
        required=False,
    )


class UserBroadWorksReceptionistEnterpriseModifyRequest(OCIRequest):
    """
    Replace the BroadWorks Receptionist - Enterprise monitored user list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id_list",
            "monitoredUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* monitoredUserIdList
    monitored_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserBroadWorksReceptionistOfficeModifyRequest(OCIRequest):
    """
    Replace the Receptionist Office monitored user list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id_list",
            "monitoredUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* monitoredUserIdList
    monitored_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserBroadWorksReceptionistSmallBusinessModifyRequest(OCIRequest):
    """
    Replace the Receptionist Small Business monitored user list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "monitored_user_id_list",
            "monitoredUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* monitoredUserIdList
    monitored_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserBusyLampFieldModifyRequest(OCIRequest):
    """
    Modify the settings for the busy lamp field service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "list_uri",
            "listURI",
            str,
            False,
            False,
            False,
        ),
        E(
            "monitored_user_id_list",
            "monitoredUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "enable_call_park_notification",
            "enableCallParkNotification",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* listURI
    list_uri = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* monitoredUserIdList
    monitored_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: bool: *Optional* enableCallParkNotification
    enable_call_park_notification = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "report_template",
            "reportTemplate",
            OCI.CallCenterReportTemplateKey,
            True,
            True,
            False,
        ),
    )
    #: OCI.CallCenterReportTemplateKey: *Required* reportTemplate
    report_template = Field(
        type=OCI.CallCenterReportTemplateKey,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_center_availability",
            "callCenterAvailability",
            OCI.CallCenterAgentAvailability,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterAgentAvailability: *Optional* callCenterAvailability
    call_center_availability = Field(
        type=OCI.CallCenterAgentAvailability,
        required=False,
    )


class UserCallCenterModifyCallCenterListRequest(OCIRequest):
    """
    Request to modify the call center list for an agent.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id_list",
            "serviceUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* agentUserId
    agent_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* serviceUserIdList
    service_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_acd_state",
            "agentACDState",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_default_guard_timer",
            "useDefaultGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_unavailable_on_personal_calls",
            "forceUnavailableOnPersonalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable",
            int,
            False,
            False,
            False,
        ),
        E(
            "make_outgoing_calls_as_call_center",
            "makeOutgoingCallsAsCallCenter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outgoing_call_dnis",
            "outgoingCallDNIS",
            OCI.DNISKey,
            True,
            False,
            False,
        ),
        E(
            "call_center_availability",
            "callCenterAvailability",
            OCI.CallCenterAgentAvailability,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* agentACDState
    agent_acd_state = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useDefaultGuardTimer
    use_default_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultUnavailableSettings
    use_system_default_unavailable_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnDNDActivation
    force_agent_unavailable_on_dnd_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceUnavailableOnPersonalCalls
    force_unavailable_on_personal_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnBouncedCallLimit
    force_agent_unavailable_on_bounced_call_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberConsecutiveBouncedCallsToForceAgentUnavailable
    number_consecutive_bounced_calls_to_force_agent_unavailable = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* makeOutgoingCallsAsCallCenter
    make_outgoing_calls_as_call_center = Field(
        type=bool,
        required=False,
    )
    #: OCI.DNISKey: *Optional* outgoingCallDNIS
    outgoing_call_dnis = Field(
        type=OCI.DNISKey,
        required=False,
    )
    #: OCI.CallCenterAgentAvailability: *Optional* callCenterAvailability
    call_center_availability = Field(
        type=OCI.CallCenterAgentAvailability,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_acd_state",
            "agentACDState",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_threshold_profile_name",
            "agentThresholdProfileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_default_guard_timer",
            "useDefaultGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "make_outgoing_calls_as_call_center",
            "makeOutgoingCallsAsCallCenter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outgoing_call_dnis",
            "outgoingCallDNIS",
            OCI.DNISKey,
            True,
            False,
            False,
        ),
        E(
            "call_center_availability",
            "callCenterAvailability",
            OCI.CallCenterAgentAvailability,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* agentACDState
    agent_acd_state = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentThresholdProfileName
    agent_threshold_profile_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useDefaultGuardTimer
    use_default_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultUnavailableSettings
    use_system_default_unavailable_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnDNDActivation
    force_agent_unavailable_on_dnd_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnPersonalCalls
    force_agent_unavailable_on_personal_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnBouncedCallLimit
    force_agent_unavailable_on_bounced_call_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberConsecutiveBouncedCallsToForceAgentUnavailable
    number_consecutive_bounced_calls_to_force_agent_unavailable = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnNotReachable
    force_agent_unavailable_on_not_reachable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* makeOutgoingCallsAsCallCenter
    make_outgoing_calls_as_call_center = Field(
        type=bool,
        required=False,
    )
    #: OCI.DNISKey: *Optional* outgoingCallDNIS
    outgoing_call_dnis = Field(
        type=OCI.DNISKey,
        required=False,
    )
    #: OCI.CallCenterAgentAvailability: *Optional* callCenterAvailability
    call_center_availability = Field(
        type=OCI.CallCenterAgentAvailability,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_acd_state",
            "agentACDState",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_threshold_profile_name",
            "agentThresholdProfileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_default_guard_timer",
            "useDefaultGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "make_outgoing_calls_as_call_center",
            "makeOutgoingCallsAsCallCenter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outgoing_call_dnis",
            "outgoingCallDNIS",
            OCI.DNISKey,
            True,
            False,
            False,
        ),
        E(
            "call_center_agent_settings",
            "callCenterAgentSettings",
            OCI.CallCenterAgentSettings,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* agentACDState
    agent_acd_state = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentThresholdProfileName
    agent_threshold_profile_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useDefaultGuardTimer
    use_default_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* useSystemDefaultUnavailableSettings
    use_system_default_unavailable_settings = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnDNDActivation
    force_agent_unavailable_on_dnd_activation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnPersonalCalls
    force_agent_unavailable_on_personal_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnBouncedCallLimit
    force_agent_unavailable_on_bounced_call_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberConsecutiveBouncedCallsToForceAgentUnavailable
    number_consecutive_bounced_calls_to_force_agent_unavailable = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceAgentUnavailableOnNotReachable
    force_agent_unavailable_on_not_reachable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* makeOutgoingCallsAsCallCenter
    make_outgoing_calls_as_call_center = Field(
        type=bool,
        required=False,
    )
    #: OCI.DNISKey: *Optional* outgoingCallDNIS
    outgoing_call_dnis = Field(
        type=OCI.DNISKey,
        required=False,
    )
    #: OCI.CallCenterAgentSettings: *Optional* callCenterAgentSettings
    call_center_agent_settings = Field(
        type=OCI.CallCenterAgentSettings,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserCallForwardingSelectiveAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's call forwarding selective service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "forward_to_number_selection",
            "forwardToNumberSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: str: *Required* forwardToNumberSelection
    forward_to_number_selection = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "forward_to_number_selection",
            "forwardToNumberSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* forwardToNumberSelection
    forward_to_number_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserCallForwardingSelectiveModifyRequest(OCIRequest):
    """
    Modify the user's call forwarding selective service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "default_forward_to_phone_number",
            "defaultForwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_ring_reminder",
            "playRingReminder",
            bool,
            False,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* defaultForwardToPhoneNumber
    default_forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playRingReminder
    play_ring_reminder = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "reject_call",
            "rejectCall",
            bool,
            False,
            True,
            False,
        ),
        E(
            "to_dn_criteria",
            "toDnCriteria",
            OCI.CallMeNowToDnCriteria,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* rejectCall
    reject_call = Field(
        type=bool,
        required=True,
    )
    #: OCI.CallMeNowToDnCriteria: *Required* toDnCriteria
    to_dn_criteria = Field(
        type=OCI.CallMeNowToDnCriteria,
        required=True,
    )


class UserCallMeNowModifyRequest(OCIRequest):
    """
    Modify the user's call me now service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "answer_confirmation",
            "answerConfirmation",
            str,
            False,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* answerConfirmation
    answer_confirmation = Field(
        type=str,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserCallNotifyAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's call notify service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserCallNotifyModifyRequest(OCIRequest):
    """
    Modify the user's call notify service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_notify_email_address",
            "callNotifyEmailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callNotifyEmailAddress
    call_notify_email_address = Field(
        type=str,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserCollaborateProjectRoomAddRequest(OCIRequest):
    """
    Request to add collaborate project room.
    The response is either a ``UserCollaborateProjectRoomAddResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_name",
            "roomName",
            str,
            False,
            True,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            True,
            False,
        ),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "owner_required",
            "ownerRequired",
            bool,
            False,
            True,
            False,
        ),
        E(
            "room_schedule",
            "roomSchedule",
            OCI.CollaborateRoomSchedule,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomName
    room_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* endCollaborateRoomSessionOnOwnerExit
    end_collaborate_room_session_on_owner_exit = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* ownerRequired
    owner_required = Field(
        type=bool,
        required=True,
    )
    #: OCI.CollaborateRoomSchedule: *Required* roomSchedule
    room_schedule = Field(
        type=OCI.CollaborateRoomSchedule,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_id",
            "roomId",
            str,
            False,
            True,
            False,
        ),
        E(
            "room_name",
            "roomName",
            str,
            False,
            False,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            False,
            False,
        ),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "owner_required",
            "ownerRequired",
            bool,
            False,
            False,
            False,
        ),
        E(
            "room_schedule",
            "roomSchedule",
            OCI.CollaborateRoomSchedule,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* roomId
    room_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* roomName
    room_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* endCollaborateRoomSessionOnOwnerExit
    end_collaborate_room_session_on_owner_exit = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* ownerRequired
    owner_required = Field(
        type=bool,
        required=False,
    )
    #: OCI.CollaborateRoomSchedule: *Optional* roomSchedule
    room_schedule = Field(
        type=OCI.CollaborateRoomSchedule,
        required=False,
    )


class UserCommunicationBarringAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of Communication Barring Authorization codes to a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code",
            "code",
            OCI.CommunicationBarringAuthorizationCodeEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CommunicationBarringAuthorizationCodeEntry: *Required* code
    code = Field(
        type=OCI.CommunicationBarringAuthorizationCodeEntry,
        required=True,
    )


class UserCustomRingbackUserModifyActiveCriteriaListRequest(OCIRequest):
    """
    Modify the user's custom ringback service criteria's active setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.ResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            True,
            False,
        ),
        E(
            "sort_by_enterprise_common_phone_list_number",
            "sortByEnterpriseCommonPhoneListNumber",
            OCI.SortByEnterpriseCommonPhoneListNumber,
            True,
            True,
            False,
        ),
        E(
            "sort_by_enterprise_common_phone_list_name",
            "sortByEnterpriseCommonPhoneListName",
            OCI.SortByEnterpriseCommonPhoneListName,
            True,
            True,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_enterprise_common_phone_list_name",
            "searchCriteriaEnterpriseCommonPhoneListName",
            OCI.SearchCriteriaEnterpriseCommonPhoneListName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_enterprise_common_phone_list_number",
            "searchCriteriaEnterpriseCommonPhoneListNumber",
            OCI.SearchCriteriaEnterpriseCommonPhoneListNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ResponsePagingControl: *Required* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=True,
    )
    #: OCI.SortByEnterpriseCommonPhoneListNumber: *Required*
    #: sortByEnterpriseCommonPhoneListNumber
    sort_by_enterprise_common_phone_list_number = Field(
        type=OCI.SortByEnterpriseCommonPhoneListNumber,
        required=True,
    )
    #: OCI.SortByEnterpriseCommonPhoneListName: *Required*
    #: sortByEnterpriseCommonPhoneListName
    sort_by_enterprise_common_phone_list_name = Field(
        type=OCI.SortByEnterpriseCommonPhoneListName,
        required=True,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaEnterpriseCommonPhoneListName: *Optional*
    #: searchCriteriaEnterpriseCommonPhoneListName
    search_criteria_enterprise_common_phone_list_name = Field(
        type=OCI.SearchCriteriaEnterpriseCommonPhoneListName,
        required=False,
    )
    #: OCI.SearchCriteriaEnterpriseCommonPhoneListNumber: *Optional*
    #: searchCriteriaEnterpriseCommonPhoneListNumber
    search_criteria_enterprise_common_phone_list_number = Field(
        type=OCI.SearchCriteriaEnterpriseCommonPhoneListNumber,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "filter",
            "filter",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.ExecutiveCallFilteringCriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* filter
    filter = Field(
        type=bool,
        required=True,
    )
    #: OCI.ExecutiveCallFilteringCriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.ExecutiveCallFilteringCriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserExecutiveAssistantModifyRequest(OCIRequest):
    """
    Modify the setting for executive assistant.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_divert",
            "enableDivert",
            bool,
            False,
            False,
            False,
        ),
        E(
            "divert_to_phone_number",
            "divertToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "opt_in_status",
            "optInStatus",
            OCI.ExecutiveAssistantOptInStatus,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableDivert
    enable_divert = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* divertToPhoneNumber
    divert_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.ExecutiveAssistantOptInStatus: *Optional* optInStatus
    opt_in_status = Field(
        type=OCI.ExecutiveAssistantOptInStatus,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_opt_in_out",
            "allowOptInOut",
            bool,
            False,
            False,
            False,
        ),
        E(
            "assistant_user_id_list",
            "assistantUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* allowOptInOut
    allow_opt_in_out = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* assistantUserIdList
    assistant_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_filtering",
            "enableFiltering",
            bool,
            False,
            False,
            False,
        ),
        E(
            "filtering_mode",
            "filteringMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "simple_filter_type",
            "simpleFilterType",
            str,
            False,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableFiltering
    enable_filtering = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* filteringMode
    filtering_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* simpleFilterType
    simple_filter_type = Field(
        type=str,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserFaxMessagingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Fax Messaging.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_alias_list",
            "sipAliasList",
            OCI.ReplacementSIPAliasList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementSIPAliasList: *Optional* sipAliasList
    sip_alias_list = Field(
        type=OCI.ReplacementSIPAliasList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "feature_access_code",
            "featureAccessCode",
            OCI.UserFeatureAccessCodeModifyEntry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.UserFeatureAccessCodeModifyEntry: *Optional* featureAccessCode
    feature_access_code = Field(
        type=OCI.UserFeatureAccessCodeModifyEntry,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider",
            OCI.SearchCriteriaExactServiceProvider,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_in_trunk_group",
            "searchCriteriaExactUserInTrunkGroup",
            OCI.SearchCriteriaExactUserInTrunkGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_network_class_of_service",
            "searchCriteriaExactUserNetworkClassOfService",
            OCI.SearchCriteriaExactUserNetworkClassOfService,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceProvider: *Optional*
    #: searchCriteriaExactServiceProvider
    search_criteria_exact_service_provider = Field(
        type=OCI.SearchCriteriaExactServiceProvider,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserInTrunkGroup: *Optional*
    #: searchCriteriaExactUserInTrunkGroup
    search_criteria_exact_user_in_trunk_group = Field(
        type=OCI.SearchCriteriaExactUserInTrunkGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserNetworkClassOfService: *Optional*
    #: searchCriteriaExactUserNetworkClassOfService
    search_criteria_exact_user_network_class_of_service = Field(
        type=OCI.SearchCriteriaExactUserNetworkClassOfService,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_type",
            "searchCriteriaExactServiceType",
            OCI.SearchCriteriaExactServiceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider",
            OCI.SearchCriteriaExactServiceProvider,
            True,
            False,
            False,
        ),
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceType: *Optional* searchCriteriaExactServiceType
    search_criteria_exact_service_type = Field(
        type=OCI.SearchCriteriaExactServiceType,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceProvider: *Optional*
    #: searchCriteriaExactServiceProvider
    search_criteria_exact_service_provider = Field(
        type=OCI.SearchCriteriaExactServiceProvider,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            True,
            False,
        ),
        E(
            "sort_by_group_common_phone_list_number",
            "sortByGroupCommonPhoneListNumber",
            OCI.SortByGroupCommonPhoneListNumber,
            True,
            True,
            False,
        ),
        E(
            "sort_by_group_common_phone_list_name",
            "sortByGroupCommonPhoneListName",
            OCI.SortByGroupCommonPhoneListName,
            True,
            True,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_common_phone_list_name",
            "searchCriteriaGroupCommonPhoneListName",
            OCI.SearchCriteriaGroupCommonPhoneListName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_common_phone_list_number",
            "searchCriteriaGroupCommonPhoneListNumber",
            OCI.SearchCriteriaGroupCommonPhoneListNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ResponsePagingControl: *Required* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=True,
    )
    #: OCI.SortByGroupCommonPhoneListNumber: *Required* sortByGroupCommonPhoneListNumber
    sort_by_group_common_phone_list_number = Field(
        type=OCI.SortByGroupCommonPhoneListNumber,
        required=True,
    )
    #: OCI.SortByGroupCommonPhoneListName: *Required* sortByGroupCommonPhoneListName
    sort_by_group_common_phone_list_name = Field(
        type=OCI.SortByGroupCommonPhoneListName,
        required=True,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaGroupCommonPhoneListName: *Optional*
    #: searchCriteriaGroupCommonPhoneListName
    search_criteria_group_common_phone_list_name = Field(
        type=OCI.SearchCriteriaGroupCommonPhoneListName,
        required=False,
    )
    #: OCI.SearchCriteriaGroupCommonPhoneListNumber: *Optional*
    #: searchCriteriaGroupCommonPhoneListNumber
    search_criteria_group_common_phone_list_number = Field(
        type=OCI.SearchCriteriaGroupCommonPhoneListNumber,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_last_name",
            "sortByUserLastName",
            OCI.SortByUserLastName,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_first_name",
            "sortByUserFirstName",
            OCI.SortByUserFirstName,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_department",
            "sortByUserDepartment",
            OCI.SortByUserDepartment,
            True,
            True,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_department_name",
            "searchCriteriaDepartmentName",
            OCI.SearchCriteriaDepartmentName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.ResponsePagingControl: *Required* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=True,
    )
    #: OCI.SortByUserLastName: *Required* sortByUserLastName
    sort_by_user_last_name = Field(
        type=OCI.SortByUserLastName,
        required=True,
    )
    #: OCI.SortByUserFirstName: *Required* sortByUserFirstName
    sort_by_user_first_name = Field(
        type=OCI.SortByUserFirstName,
        required=True,
    )
    #: OCI.SortByUserDepartment: *Required* sortByUserDepartment
    sort_by_user_department = Field(
        type=OCI.SortByUserDepartment,
        required=True,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDepartmentName: *Optional* searchCriteriaDepartmentName
    search_criteria_department_name = Field(
        type=OCI.SearchCriteriaDepartmentName,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class UserHolidayScheduleAddRequest(OCIRequest):
    """
    Add a holiday schedule to a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday01",
            "holiday01",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday02",
            "holiday02",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday03",
            "holiday03",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday04",
            "holiday04",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday05",
            "holiday05",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday06",
            "holiday06",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday07",
            "holiday07",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday08",
            "holiday08",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday09",
            "holiday09",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday10",
            "holiday10",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday11",
            "holiday11",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday12",
            "holiday12",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday13",
            "holiday13",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday14",
            "holiday14",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday15",
            "holiday15",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday16",
            "holiday16",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday17",
            "holiday17",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday18",
            "holiday18",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday19",
            "holiday19",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday20",
            "holiday20",
            OCI.Holiday,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )
    #: OCI.Holiday: *Optional* holiday01
    holiday01 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday02
    holiday02 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday03
    holiday03 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday04
    holiday04 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday05
    holiday05 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday06
    holiday06 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday07
    holiday07 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday08
    holiday08 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday09
    holiday09 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday10
    holiday10 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday11
    holiday11 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday12
    holiday12 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday13
    holiday13 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday14
    holiday14 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday15
    holiday15 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday16
    holiday16 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday17
    holiday17 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday18
    holiday18 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday19
    holiday19 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday20
    holiday20 = Field(
        type=OCI.Holiday,
        required=False,
    )


class UserHolidayScheduleModifyRequest(OCIRequest):
    """
    Modify a holiday schedule for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_holiday_schedule_name",
            "newHolidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday01",
            "holiday01",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday02",
            "holiday02",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday03",
            "holiday03",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday04",
            "holiday04",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday05",
            "holiday05",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday06",
            "holiday06",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday07",
            "holiday07",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday08",
            "holiday08",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday09",
            "holiday09",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday10",
            "holiday10",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday11",
            "holiday11",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday12",
            "holiday12",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday13",
            "holiday13",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday14",
            "holiday14",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday15",
            "holiday15",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday16",
            "holiday16",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday17",
            "holiday17",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday18",
            "holiday18",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday19",
            "holiday19",
            OCI.Holiday,
            True,
            False,
            False,
        ),
        E(
            "holiday20",
            "holiday20",
            OCI.Holiday,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newHolidayScheduleName
    new_holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday01
    holiday01 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday02
    holiday02 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday03
    holiday03 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday04
    holiday04 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday05
    holiday05 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday06
    holiday06 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday07
    holiday07 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday08
    holiday08 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday09
    holiday09 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday10
    holiday10 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday11
    holiday11 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday12
    holiday12 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday13
    holiday13 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday14
    holiday14 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday15
    holiday15 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday16
    holiday16 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday17
    holiday17 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday18
    holiday18 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday19
    holiday19 = Field(
        type=OCI.Holiday,
        required=False,
    )
    #: OCI.Holiday: *Optional* holiday20
    holiday20 = Field(
        type=OCI.Holiday,
        required=False,
    )


class UserInterceptUserModifyRequest(OCIRequest):
    """
    Modify the user's intercept user service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``UserInterceptUserModifyRequest16()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "play_new_phone_number",
            "playNewPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "new_phone_number",
            "newPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_on_zero_to_phone_number",
            "transferOnZeroToPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* announcementSelection
    announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: bool: *Optional* playNewPhoneNumber
    play_new_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* newPhoneNumber
    new_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* transferOnZeroToPhoneNumber
    transfer_on_zero_to_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )


class UserInterceptUserModifyRequest16(OCIRequest):
    """
    Modify the user's intercept user service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "play_new_phone_number",
            "playNewPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "new_phone_number",
            "newPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_on_zero_to_phone_number",
            "transferOnZeroToPhoneNumber",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "reroute_outbound_calls",
            "rerouteOutboundCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outbound_reroute_phone_number",
            "outboundReroutePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_outbound_local_calls",
            "allowOutboundLocalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "inbound_call_mode",
            "inboundCallMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "alternate_blocking_announcement",
            "alternateBlockingAnnouncement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_to_voice_mail",
            "routeToVoiceMail",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* announcementSelection
    announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Optional* playNewPhoneNumber
    play_new_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* newPhoneNumber
    new_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* transferOnZeroToPhoneNumber
    transfer_on_zero_to_phone_number = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* rerouteOutboundCalls
    reroute_outbound_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* outboundReroutePhoneNumber
    outbound_reroute_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowOutboundLocalCalls
    allow_outbound_local_calls = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* inboundCallMode
    inbound_call_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* alternateBlockingAnnouncement
    alternate_blocking_announcement = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeToVoiceMail
    route_to_voice_mail = Field(
        type=bool,
        required=False,
    )


class UserLDAPIntegrationGetDirectoryListRequest(OCIRequest):
    """
    Request the LDAP entry lists for a user.
    The response is either a ``UserLDAPIntegrationGetDirectoryListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "search_key",
            "searchKey",
            str,
            False,
            False,
            False,
        ),
        E(
            "page",
            "page",
            OCI.LDAPPage,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* searchKey
    search_key = Field(
        type=str,
        required=False,
    )
    #: OCI.LDAPPage: *Optional* page
    page = Field(
        type=OCI.LDAPPage,
        required=False,
    )


class UserMaliciousCallTraceModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Malicious Call Trace.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trace_type_selection",
            "traceTypeSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "trace_for_time_period",
            "traceForTimePeriod",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trace_time_period",
            "traceTimePeriod",
            OCI.MaliciousCallTraceTimePeriod,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* traceTypeSelection
    trace_type_selection = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* traceForTimePeriod
    trace_for_time_period = Field(
        type=bool,
        required=False,
    )
    #: OCI.MaliciousCallTraceTimePeriod: *Optional* traceTimePeriod
    trace_time_period = Field(
        type=OCI.MaliciousCallTraceTimePeriod,
        required=False,
    )


class UserMeetMeConferencingAddConferenceRequest(OCIRequest):
    """
    Add a Meet-Me conference.
    The response is either ``UserMeetMeConferencingAddConferenceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "bridge_id",
            "bridgeId",
            str,
            False,
            True,
            False,
        ),
        E(
            "title",
            "title",
            str,
            False,
            True,
            False,
        ),
        E(
            "estimated_participants",
            "estimatedParticipants",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_participants",
            "restrictParticipants",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_participants",
            "maxParticipants",
            int,
            False,
            True,
            False,
        ),
        E(
            "account_code",
            "accountCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "mute_all_attendees_on_entry",
            "muteAllAttendeesOnEntry",
            bool,
            False,
            True,
            False,
        ),
        E(
            "end_conference_on_moderator_exit",
            "endConferenceOnModeratorExit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "moderator_required",
            "moderatorRequired",
            bool,
            False,
            True,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_schedule",
            "conferenceSchedule",
            OCI.MeetMeConferencingConferenceSchedule,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* bridgeId
    bridge_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* title
    title = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* estimatedParticipants
    estimated_participants = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* restrictParticipants
    restrict_participants = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* maxParticipants
    max_participants = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* accountCode
    account_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* muteAllAttendeesOnEntry
    mute_all_attendees_on_entry = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* endConferenceOnModeratorExit
    end_conference_on_moderator_exit = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* moderatorRequired
    moderator_required = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceSchedule: *Required* conferenceSchedule
    conference_schedule = Field(
        type=OCI.MeetMeConferencingConferenceSchedule,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "bridge_id",
            "bridgeId",
            str,
            False,
            True,
            False,
        ),
        E(
            "title",
            "title",
            str,
            False,
            True,
            False,
        ),
        E(
            "estimated_participants",
            "estimatedParticipants",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_participants",
            "restrictParticipants",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_participants",
            "maxParticipants",
            int,
            False,
            True,
            False,
        ),
        E(
            "account_code",
            "accountCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "mute_all_attendees_on_entry",
            "muteAllAttendeesOnEntry",
            bool,
            False,
            True,
            False,
        ),
        E(
            "end_conference_on_moderator_exit",
            "endConferenceOnModeratorExit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "moderator_required",
            "moderatorRequired",
            bool,
            False,
            True,
            False,
        ),
        E(
            "require_security_pin",
            "requireSecurityPin",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unique_identifier",
            "allowUniqueIdentifier",
            bool,
            False,
            True,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_schedule",
            "conferenceSchedule",
            OCI.MeetMeConferencingConferenceSchedule,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* bridgeId
    bridge_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* title
    title = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* estimatedParticipants
    estimated_participants = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* restrictParticipants
    restrict_participants = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* maxParticipants
    max_participants = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* accountCode
    account_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* muteAllAttendeesOnEntry
    mute_all_attendees_on_entry = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* endConferenceOnModeratorExit
    end_conference_on_moderator_exit = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* moderatorRequired
    moderator_required = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requireSecurityPin
    require_security_pin = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUniqueIdentifier
    allow_unique_identifier = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceSchedule: *Required* conferenceSchedule
    conference_schedule = Field(
        type=OCI.MeetMeConferencingConferenceSchedule,
        required=True,
    )


class UserMeetMeConferencingDeleteConferenceListRequest(OCIRequest):
    """
    Request to delete one or more conferences which are owned by the user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingDeleteConferenceRecordingListRequest(OCIRequest):
    """
    Request to delete one or more conference recordings owned by the user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "recording_key",
            "recordingKey",
            OCI.MeetMeConferencingConferenceRecordingKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceRecordingKey: *Required* recordingKey
    recording_key = Field(
        type=OCI.MeetMeConferencingConferenceRecordingKey,
        required=True,
    )


class UserMeetMeConferencingGetConferenceDelegateListRequest(OCIRequest):
    """
    Get the conference delegates for this conference.
    The response is either ``UserMeetMeConferencingGetConferenceDelegateListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingGetConferenceGreetingRequest(OCIRequest):
    """
    Get the information of a conference custom greeting.
    The response is either ``UserMeetMeConferencingGetConferenceGreetingResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingGetConferenceGreetingRequest20(OCIRequest):
    """
    Get the information of a conference custom greeting.
    The response is either ``UserMeetMeConferencingGetConferenceGreetingResponse20()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingGetConferenceRequest(OCIRequest):
    """
    Get the information of a conference owned by the user.
    The response is either ``UserMeetMeConferencingGetConferenceResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingGetConferenceRequest19(OCIRequest):
    """
    Get the information of a conference owned by the user.
    The response is either ``UserMeetMeConferencingGetConferenceResponse19()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingGetConferenceRequest20(OCIRequest):
    """
    Get the information of a conference owned by the user.
    The response is either ``UserMeetMeConferencingGetConferenceResponse20()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )


class UserMeetMeConferencingModifyConferenceDelegateListRequest(OCIRequest):
    """
    Modify the existing conference delegates list.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
        E(
            "conference_delegate_user_list",
            "conferenceDelegateUserList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* conferenceDelegateUserList
    conference_delegate_user_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserMeetMeConferencingModifyConferenceGreetingRequest(OCIRequest):
    """
    Modify an existing custom greeting audio file.
    The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
        E(
            "play_entrance_greeting",
            "playEntranceGreeting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_greeting_file",
            "entranceGreetingFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )
    #: bool: *Optional* playEntranceGreeting
    play_entrance_greeting = Field(
        type=bool,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* entranceGreetingFile
    entrance_greeting_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )


class UserMeetMeConferencingModifyConferenceGreetingRequest20(OCIRequest):
    """
    Modify an existing custom greeting audio file.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
        E(
            "play_entrance_greeting",
            "playEntranceGreeting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_greeting_file",
            "entranceGreetingFile",
            OCI.AnnouncementFileKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )
    #: bool: *Optional* playEntranceGreeting
    play_entrance_greeting = Field(
        type=bool,
        required=False,
    )
    #: OCI.AnnouncementFileKey: *Optional* entranceGreetingFile
    entrance_greeting_file = Field(
        type=OCI.AnnouncementFileKey,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "estimated_participants",
            "estimatedParticipants",
            int,
            False,
            False,
            False,
        ),
        E(
            "restrict_participants",
            "restrictParticipants",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_participants",
            "maxParticipants",
            int,
            False,
            True,
            False,
        ),
        E(
            "account_code",
            "accountCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "mute_all_attendees_on_entry",
            "muteAllAttendeesOnEntry",
            bool,
            False,
            False,
            False,
        ),
        E(
            "end_conference_on_moderator_exit",
            "endConferenceOnModeratorExit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "moderator_required",
            "moderatorRequired",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_security_pin",
            "requireSecurityPin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_unique_identifier",
            "allowUniqueIdentifier",
            bool,
            False,
            False,
            False,
        ),
        E(
            "attendee_notification",
            "attendeeNotification",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_schedule",
            "conferenceSchedule",
            OCI.MeetMeConferencingConferenceSchedule,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* estimatedParticipants
    estimated_participants = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* restrictParticipants
    restrict_participants = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* maxParticipants
    max_participants = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* accountCode
    account_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* muteAllAttendeesOnEntry
    mute_all_attendees_on_entry = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* endConferenceOnModeratorExit
    end_conference_on_moderator_exit = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* moderatorRequired
    moderator_required = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireSecurityPin
    require_security_pin = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowUniqueIdentifier
    allow_unique_identifier = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* attendeeNotification
    attendee_notification = Field(
        type=str,
        required=False,
    )
    #: OCI.MeetMeConferencingConferenceSchedule: *Optional* conferenceSchedule
    conference_schedule = Field(
        type=OCI.MeetMeConferencingConferenceSchedule,
        required=False,
    )


class UserModifyRequest14(OCIRequest):
    """
    Request to modify a user. The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "old_password",
            "oldPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_alias_list",
            "sipAliasList",
            OCI.ReplacementSIPAliasList,
            True,
            False,
            False,
        ),
        E(
            "endpoint",
            "endpoint",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* oldPassword
    old_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* newPassword
    new_password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementSIPAliasList: *Optional* sipAliasList
    sip_alias_list = Field(
        type=OCI.ReplacementSIPAliasList,
        required=False,
    )
    #: str: *Optional* endpoint
    endpoint = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )


class UserModifyRequest14sp9(OCIRequest):
    """
    Request to modify a user. The response is either
    ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``UserModifyRequest16()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "old_password",
            "oldPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_alias_list",
            "sipAliasList",
            OCI.ReplacementSIPAliasList,
            True,
            False,
            False,
        ),
        E(
            "endpoint",
            "endpoint",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* oldPassword
    old_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* newPassword
    new_password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementSIPAliasList: *Optional* sipAliasList
    sip_alias_list = Field(
        type=OCI.ReplacementSIPAliasList,
        required=False,
    )
    #: str: *Optional* endpoint
    endpoint = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "old_password",
            "oldPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_alias_list",
            "sipAliasList",
            OCI.ReplacementSIPAliasList,
            True,
            False,
            False,
        ),
        E(
            "endpoint",
            "endpoint",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "primary_zone_name",
            "primaryZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* oldPassword
    old_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* newPassword
    new_password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementSIPAliasList: *Optional* sipAliasList
    sip_alias_list = Field(
        type=OCI.ReplacementSIPAliasList,
        required=False,
    )
    #: str: *Optional* endpoint
    endpoint = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* primaryZoneName
    primary_zone_name = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_name",
            "nameDialingName",
            OCI.NameDialingName,
            True,
            False,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "old_password",
            "oldPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "new_password",
            "newPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_alias_list",
            "sipAliasList",
            OCI.ReplacementSIPAliasList,
            True,
            False,
            False,
        ),
        E(
            "endpoint",
            "endpoint",
            str,
            True,
            False,
            False,
        ),  # unknown
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "primary_zone_name",
            "primaryZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "imp_id",
            "impId",
            str,
            False,
            False,
            False,
        ),
        E(
            "imp_password",
            "impPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* lastName
    last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* firstName
    first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=False,
    )
    #: OCI.NameDialingName: *Optional* nameDialingName
    name_dialing_name = Field(
        type=OCI.NameDialingName,
        required=False,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* oldPassword
    old_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* newPassword
    new_password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementSIPAliasList: *Optional* sipAliasList
    sip_alias_list = Field(
        type=OCI.ReplacementSIPAliasList,
        required=False,
    )
    #: str: *Optional* endpoint
    endpoint = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* primaryZoneName
    primary_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* impId
    imp_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* impPassword
    imp_password = Field(
        type=str,
        required=False,
    )


class UserMusicOnHoldUserModifyRequest(OCIRequest):
    """
    Modify data for Music On Hold User.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    Replaced By ``UserMusicOnHoldUserModifyRequest16()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldUserSourceModify,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldUserSourceModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MusicOnHoldUserSourceModify: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldUserSourceModify,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldUserSourceModify: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldUserSourceModify,
        required=False,
    )


class UserMusicOnHoldUserModifyRequest16(OCIRequest):
    """
    Modify data for Music On Hold User.
    The response
    is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldUserSourceModify16,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldUserSourceModify16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MusicOnHoldUserSourceModify16: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldUserSourceModify16,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldUserSourceModify16: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldUserSourceModify16,
        required=False,
    )


class UserMusicOnHoldUserModifyRequest20(OCIRequest):
    """
    Modify data for Music On Hold User.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "source",
            "source",
            OCI.MusicOnHoldUserSourceModify20,
            True,
            False,
            False,
        ),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "internal_source",
            "internalSource",
            OCI.MusicOnHoldUserSourceModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MusicOnHoldUserSourceModify20: *Optional* source
    source = Field(
        type=OCI.MusicOnHoldUserSourceModify20,
        required=False,
    )
    #: bool: *Optional* useAlternateSourceForInternalCalls
    use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.MusicOnHoldUserSourceModify20: *Optional* internalSource
    internal_source = Field(
        type=OCI.MusicOnHoldUserSourceModify20,
        required=False,
    )


class UserOCICallControlApplicationModifyRequest(OCIRequest):
    """
    Modify which OCI Call Control Applications are enabled on a user
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "application_id_list",
            "applicationIdList",
            OCI.ReplacementOCICallControlApplicationIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementOCICallControlApplicationIdList: *Optional* applicationIdList
    application_id_list = Field(
        type=OCI.ReplacementOCICallControlApplicationIdList,
        required=False,
    )


class UserOutgoingCallingPlanAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of authorization codes to a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "code_entry",
            "codeEntry",
            OCI.OutgoingCallingPlanAuthorizationCodeEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanAuthorizationCodeEntry: *Required* codeEntry
    code_entry = Field(
        type=OCI.OutgoingCallingPlanAuthorizationCodeEntry,
        required=True,
    )


class UserOutgoingCallingPlanCallMeNowModifyRequest(OCIRequest):
    """
    Modify the Call Me Now call permissions for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanCallMeNowPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanCallMeNowPermissionsModify: *Optional* userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanCallMeNowPermissionsModify,
        required=False,
    )


class UserOutgoingCallingPlanOriginatingModifyRequest(OCIRequest):
    """
    Modify the originating permissions for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanOriginatingPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanOriginatingPermissionsModify: *Optional* userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanOriginatingPermissionsModify,
        required=False,
    )


class UserOutgoingCallingPlanRedirectedModifyRequest(OCIRequest):
    """
    Modify the call forwarded/transferred permissions for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanRedirectedPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanRedirectedPermissionsModify: *Optional* userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanRedirectedPermissionsModify,
        required=False,
    )


class UserOutgoingCallingPlanRedirectingModifyRequest(OCIRequest):
    """
    Modify the initiating call forwards/transfer permissions for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanRedirectingPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanRedirectingPermissionsModify: *Optional* userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanRedirectingPermissionsModify,
        required=False,
    )


class UserOutgoingCallingPlanTransferNumbersModifyRequest(OCIRequest):
    """
    Modify the transfer numbers for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_numbers",
            "userNumbers",
            OCI.OutgoingCallingPlanTransferNumbersModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanTransferNumbersModify: *Optional* userNumbers
    user_numbers = Field(
        type=OCI.OutgoingCallingPlanTransferNumbersModify,
        required=False,
    )


class UserPersonalAssistantExclusionNumberGetListRequest(OCIRequest):
    """
    Request to get the User Personal Assistant Exclusion Number List information.
    The response is either a userPersonalAssistantExclusionNumberGetListResponse or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "search_criteria_personal_assistant_exclusion_number",
            "searchCriteriaPersonalAssistantExclusionNumber",
            OCI.SearchCriteriaPersonalAssistantExclusionNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_personal_assistant_exclusion_number_description",
            "searchCriteriaPersonalAssistantExclusionNumberDescription",
            OCI.SearchCriteriaPersonalAssistantExclusionNumberDescription,
            True,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.SearchCriteriaPersonalAssistantExclusionNumber: *Optional*
    #: searchCriteriaPersonalAssistantExclusionNumber
    search_criteria_personal_assistant_exclusion_number = Field(
        type=OCI.SearchCriteriaPersonalAssistantExclusionNumber,
        required=False,
    )
    #: OCI.SearchCriteriaPersonalAssistantExclusionNumberDescription: *Optional*
    #: searchCriteriaPersonalAssistantExclusionNumberDescription
    search_criteria_personal_assistant_exclusion_number_description = Field(
        type=OCI.SearchCriteriaPersonalAssistantExclusionNumberDescription,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "entry",
            "entry",
            OCI.PhoneListEntry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.PhoneListEntry: *Required* entry
    entry = Field(
        type=OCI.PhoneListEntry,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_personal_phone_list_name",
            "searchCriteriaUserPersonalPhoneListName",
            OCI.SearchCriteriaUserPersonalPhoneListName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_personal_phone_list_number",
            "searchCriteriaUserPersonalPhoneListNumber",
            OCI.SearchCriteriaUserPersonalPhoneListNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserPersonalPhoneListName: *Optional*
    #: searchCriteriaUserPersonalPhoneListName
    search_criteria_user_personal_phone_list_name = Field(
        type=OCI.SearchCriteriaUserPersonalPhoneListName,
        required=False,
    )
    #: OCI.SearchCriteriaUserPersonalPhoneListNumber: *Optional*
    #: searchCriteriaUserPersonalPhoneListNumber
    search_criteria_user_personal_phone_list_number = Field(
        type=OCI.SearchCriteriaUserPersonalPhoneListNumber,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_personal_phone_list_number",
            "sortByUserPersonalPhoneListNumber",
            OCI.SortByUserPersonalPhoneListNumber,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_personal_phone_list_name",
            "sortByUserPersonalPhoneListName",
            OCI.SortByUserPersonalPhoneListName,
            True,
            True,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_personal_phone_list_name",
            "searchCriteriaUserPersonalPhoneListName",
            OCI.SearchCriteriaUserPersonalPhoneListName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_personal_phone_list_number",
            "searchCriteriaUserPersonalPhoneListNumber",
            OCI.SearchCriteriaUserPersonalPhoneListNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ResponsePagingControl: *Required* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=True,
    )
    #: OCI.SortByUserPersonalPhoneListNumber: *Required*
    #: sortByUserPersonalPhoneListNumber
    sort_by_user_personal_phone_list_number = Field(
        type=OCI.SortByUserPersonalPhoneListNumber,
        required=True,
    )
    #: OCI.SortByUserPersonalPhoneListName: *Required* sortByUserPersonalPhoneListName
    sort_by_user_personal_phone_list_name = Field(
        type=OCI.SortByUserPersonalPhoneListName,
        required=True,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserPersonalPhoneListName: *Optional*
    #: searchCriteriaUserPersonalPhoneListName
    search_criteria_user_personal_phone_list_name = Field(
        type=OCI.SearchCriteriaUserPersonalPhoneListName,
        required=False,
    )
    #: OCI.SearchCriteriaUserPersonalPhoneListNumber: *Optional*
    #: searchCriteriaUserPersonalPhoneListNumber
    search_criteria_user_personal_phone_list_number = Field(
        type=OCI.SearchCriteriaUserPersonalPhoneListNumber,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enterprise_info_requested",
            "isEnterpriseInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_last_name",
            "sortByUserLastName",
            OCI.SortByUserLastName,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_first_name",
            "sortByUserFirstName",
            OCI.SortByUserFirstName,
            True,
            True,
            False,
        ),
        E(
            "sort_by_user_department",
            "sortByUserDepartment",
            OCI.SortByUserDepartment,
            True,
            True,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_department_name",
            "searchCriteriaDepartmentName",
            OCI.SearchCriteriaDepartmentName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnterpriseInfoRequested
    is_enterprise_info_requested = Field(
        type=bool,
        required=True,
    )
    #: OCI.ResponsePagingControl: *Required* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=True,
    )
    #: OCI.SortByUserLastName: *Required* sortByUserLastName
    sort_by_user_last_name = Field(
        type=OCI.SortByUserLastName,
        required=True,
    )
    #: OCI.SortByUserFirstName: *Required* sortByUserFirstName
    sort_by_user_first_name = Field(
        type=OCI.SortByUserFirstName,
        required=True,
    )
    #: OCI.SortByUserDepartment: *Required* sortByUserDepartment
    sort_by_user_department = Field(
        type=OCI.SortByUserDepartment,
        required=True,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaDepartmentName: *Optional* searchCriteriaDepartmentName
    search_criteria_department_name = Field(
        type=OCI.SearchCriteriaDepartmentName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class UserPolycomPhoneServicesGetRequest(OCIRequest):
    """
    Request the user's Polycom Phone Services attributes.
    The response is either a ``UserPolycomPhoneServicesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )


class UserPolycomPhoneServicesModifyRequest(OCIRequest):
    """
    Modify the user's Polycom Phone Services attributes.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            True,
            False,
        ),
        E(
            "integrate_phone_directory_with_broad_works",
            "integratePhoneDirectoryWithBroadWorks",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_user_personal_phone_list_in_directory",
            "includeUserPersonalPhoneListInDirectory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_group_custom_contact_directory_in_directory",
            "includeGroupCustomContactDirectoryInDirectory",
            bool,
            False,
            False,
            False,
        ),
        E(
            "group_custom_contact_directory",
            "groupCustomContactDirectory",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDevice: *Required* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=True,
    )
    #: bool: *Optional* integratePhoneDirectoryWithBroadWorks
    integrate_phone_directory_with_broad_works = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeUserPersonalPhoneListInDirectory
    include_user_personal_phone_list_in_directory = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeGroupCustomContactDirectoryInDirectory
    include_group_custom_contact_directory_in_directory = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* groupCustomContactDirectory
    group_custom_contact_directory = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserPreferredCarrierUserModifyRequest(OCIRequest):
    """
    Modifies the currently configured preferred carriers for a user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "intra_lata_carrier",
            "intraLataCarrier",
            OCI.UserPreferredCarrierNameModify,
            True,
            False,
            False,
        ),
        E(
            "inter_lata_carrier",
            "interLataCarrier",
            OCI.UserPreferredCarrierNameModify,
            True,
            False,
            False,
        ),
        E(
            "international_carrier",
            "internationalCarrier",
            OCI.UserPreferredCarrierNameModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.UserPreferredCarrierNameModify: *Optional* intraLataCarrier
    intra_lata_carrier = Field(
        type=OCI.UserPreferredCarrierNameModify,
        required=False,
    )
    #: OCI.UserPreferredCarrierNameModify: *Optional* interLataCarrier
    inter_lata_carrier = Field(
        type=OCI.UserPreferredCarrierNameModify,
        required=False,
    )
    #: OCI.UserPreferredCarrierNameModify: *Optional* internationalCarrier
    international_carrier = Field(
        type=OCI.UserPreferredCarrierNameModify,
        required=False,
    )


class UserPriorityAlertAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's priority alert service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.PriorityAlertCriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.PriorityAlertCriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.PriorityAlertCriteriaFromDn,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.PriorityAlertCriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.PriorityAlertCriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.PriorityAlertCriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserPriorityAlertModifyActiveCriteriaListRequest(OCIRequest):
    """
    Activate the user's priority alert criteria list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_directory_privacy",
            "enableDirectoryPrivacy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_auto_attendant_extension_dialing_privacy",
            "enableAutoAttendantExtensionDialingPrivacy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_auto_attendant_name_dialing_privacy",
            "enableAutoAttendantNameDialingPrivacy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_phone_status_privacy",
            "enablePhoneStatusPrivacy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "permitted_monitor_user_id_list",
            "permittedMonitorUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* enableDirectoryPrivacy
    enable_directory_privacy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAutoAttendantExtensionDialingPrivacy
    enable_auto_attendant_extension_dialing_privacy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAutoAttendantNameDialingPrivacy
    enable_auto_attendant_name_dialing_privacy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enablePhoneStatusPrivacy
    enable_phone_status_privacy = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* permittedMonitorUserIdList
    permitted_monitor_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )


class UserPushToTalkModifyRequest(OCIRequest):
    """
    Change the push to talk service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "allow_auto_answer",
            "allowAutoAnswer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outgoing_connection_selection",
            "outgoingConnectionSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_list_selection",
            "accessListSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "selected_user_id_list",
            "selectedUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* allowAutoAnswer
    allow_auto_answer = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* outgoingConnectionSelection
    outgoing_connection_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* accessListSelection
    access_list_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* selectedUserIdList
    selected_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "treat_originations_and_pbx_redirections_as_screened",
            "treatOriginationsAndPBXRedirectionsAsScreened",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_route_list_identity_for_non_emergency_calls",
            "useRouteListIdentityForNonEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_route_list_identity_for_emergency_calls",
            "useRouteListIdentityForEmergencyCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "assigned_number_range_start_list",
            "assignedNumberRangeStartList",
            OCI.ReplacementDNList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* treatOriginationsAndPBXRedirectionsAsScreened
    treat_originations_and_pbx_redirections_as_screened = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useRouteListIdentityForNonEmergencyCalls
    use_route_list_identity_for_non_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useRouteListIdentityForEmergencyCalls
    use_route_list_identity_for_emergency_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementDNList: *Optional* assignedNumberRangeStartList
    assigned_number_range_start_list = Field(
        type=OCI.ReplacementDNList,
        required=False,
    )


class UserRoutePointSupervisorModifyListRequest(OCIRequest):
    """
    Request to modify the Route Point supervisor list for a user.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "supervisor_user_id_list",
            "supervisorUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* supervisorUserIdList
    supervisor_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            True,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* startDate
    start_date = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Required* endDate
    end_date = Field(
        type=str,
        required=True,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class UserScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a user schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


class UserScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of user schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class UserScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a user schedule.
    The response is either a ``UserScheduleGetEventListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )


class UserScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a user schedule.
    The response is either a ``UserScheduleGetEventResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "event_name",
            "eventName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_event_name",
            "newEventName",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_date",
            "startDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "all_day_event",
            "allDayEvent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "start_time",
            "startTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_time",
            "endTime",
            OCI.HourMinute,
            True,
            True,
            False,
        ),
        E(
            "end_date",
            "endDate",
            str,
            False,
            False,
            False,
        ),
        E(
            "recurrence",
            "recurrence",
            OCI.Recurrence,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Required* eventName
    event_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newEventName
    new_event_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDate
    start_date = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allDayEvent
    all_day_event = Field(
        type=bool,
        required=True,
    )
    #: OCI.HourMinute: *Required* startTime
    start_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: OCI.HourMinute: *Required* endTime
    end_time = Field(
        type=OCI.HourMinute,
        required=True,
    )
    #: str: *Optional* endDate
    end_date = Field(
        type=str,
        required=False,
    )
    #: OCI.Recurrence: *Optional* recurrence
    recurrence = Field(
        type=OCI.Recurrence,
        required=False,
    )


class UserScheduleModifyRequest(OCIRequest):
    """
    Modify a user schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_key",
            "scheduleKey",
            OCI.ScheduleKey,
            True,
            True,
            False,
        ),
        E(
            "new_schedule_name",
            "newScheduleName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleKey: *Required* scheduleKey
    schedule_key = Field(
        type=OCI.ScheduleKey,
        required=True,
    )
    #: str: *Optional* newScheduleName
    new_schedule_name = Field(
        type=str,
        required=False,
    )


class UserSelectiveCallAcceptanceAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's selective call acceptance service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserSelectiveCallAcceptanceModifyActiveCriteriaListRequest(OCIRequest):
    """
    Activate the user's selective call acceptance criteria list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserSelectiveCallRejectionAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's selective call rejection service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.SelectiveCallRejectionCriteriaCallType,
            True,
            True,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.SelectiveCallRejectionCriteriaCallType: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.SelectiveCallRejectionCriteriaCallType,
        required=True,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )


class UserSelectiveCallRejectionModifyActiveCriteriaListRequest(OCIRequest):
    """
    Activate the user's selective call rejection criteria list.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserSequentialRingAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's sequential ring service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


class UserSequentialRingAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's sequential ring service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


class UserSequentialRingModifyRequest(OCIRequest):
    """
    Modify the user's sequential ring service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "ring_base_location_first",
            "ringBaseLocationFirst",
            bool,
            False,
            False,
            False,
        ),
        E(
            "base_location_number_of_rings",
            "baseLocationNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "continue_if_base_location_is_busy",
            "continueIfBaseLocationIsBusy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "caller_may_stop_search",
            "callerMayStopSearch",
            bool,
            False,
            False,
            False,
        ),
        E(
            "location01",
            "Location01",
            OCI.SequentialRingLocationModify,
            True,
            False,
            False,
        ),
        E(
            "location02",
            "Location02",
            OCI.SequentialRingLocationModify,
            True,
            False,
            False,
        ),
        E(
            "location03",
            "Location03",
            OCI.SequentialRingLocationModify,
            True,
            False,
            False,
        ),
        E(
            "location04",
            "Location04",
            OCI.SequentialRingLocationModify,
            True,
            False,
            False,
        ),
        E(
            "location05",
            "Location05",
            OCI.SequentialRingLocationModify,
            True,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* ringBaseLocationFirst
    ring_base_location_first = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* baseLocationNumberOfRings
    base_location_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* continueIfBaseLocationIsBusy
    continue_if_base_location_is_busy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* callerMayStopSearch
    caller_may_stop_search = Field(
        type=bool,
        required=False,
    )
    #: OCI.SequentialRingLocationModify: *Optional* Location01
    location01 = Field(
        type=OCI.SequentialRingLocationModify,
        required=False,
    )
    #: OCI.SequentialRingLocationModify: *Optional* Location02
    location02 = Field(
        type=OCI.SequentialRingLocationModify,
        required=False,
    )
    #: OCI.SequentialRingLocationModify: *Optional* Location03
    location03 = Field(
        type=OCI.SequentialRingLocationModify,
        required=False,
    )
    #: OCI.SequentialRingLocationModify: *Optional* Location04
    location04 = Field(
        type=OCI.SequentialRingLocationModify,
        required=False,
    )
    #: OCI.SequentialRingLocationModify: *Optional* Location05
    location05 = Field(
        type=OCI.SequentialRingLocationModify,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserServiceScriptsUserModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Service Scripts User Configuration.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "script_file",
            "scriptFile",
            OCI.ServiceScriptsFileResource,
            True,
            False,
            False,
        ),
        E(
            "script_url",
            "scriptUrl",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: OCI.ServiceScriptsFileResource: *Optional* scriptFile
    script_file = Field(
        type=OCI.ServiceScriptsFileResource,
        required=False,
    )
    #: str: *Optional* scriptUrl
    script_url = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "public_user_identity",
            "publicUserIdentity",
            OCI.PublicUserIdentity,
            True,
            True,
            False,
        ),
    )
    #: OCI.PublicUserIdentity: *Required* publicUserIdentity
    public_user_identity = Field(
        type=OCI.PublicUserIdentity,
        required=True,
    )


class UserShInterfaceModifyRequest(OCIRequest):
    """
    Modifies the Sh Interface non-transparent data associated with a Public User Identity.
    The response is a ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "public_user_identity",
            "publicUserIdentity",
            OCI.PublicUserIdentity,
            True,
            True,
            False,
        ),
        E(
            "scscf_name",
            "SCSCFName",
            str,
            False,
            False,
            False,
        ),
        E(
            "ims_user_state",
            "IMSUserState",
            str,
            False,
            False,
            False,
        ),
    )
    #: OCI.PublicUserIdentity: *Required* publicUserIdentity
    public_user_identity = Field(
        type=OCI.PublicUserIdentity,
        required=True,
    )
    #: str: *Optional* SCSCFName
    scscf_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* IMSUserState
    ims_user_state = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "public_user_identity",
            "publicUserIdentity",
            OCI.PublicUserIdentity,
            True,
            True,
            False,
        ),
    )
    #: OCI.PublicUserIdentity: *Required* publicUserIdentity
    public_user_identity = Field(
        type=OCI.PublicUserIdentity,
        required=True,
    )


class UserSimultaneousRingFamilyAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's simultaneous ring family service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


class UserSimultaneousRingFamilyModifyRequest(OCIRequest):
    """
    Modify the user's simultaneous ring family service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``UserSimultaneousRingFamilyModifyRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "incoming_calls",
            "incomingCalls",
            str,
            False,
            False,
            False,
        ),
        E(
            "sim_ring_phone_number_list",
            "simRingPhoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* incomingCalls
    incoming_calls = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementOutgoingDNorSIPURIList: *Optional* simRingPhoneNumberList
    sim_ring_phone_number_list = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList,
        required=False,
    )


class UserSimultaneousRingPersonalAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's simultaneous ring personal service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )


class UserSimultaneousRingPersonalModifyRequest(OCIRequest):
    """
    Modify the user's simultaneous ring personal service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    Replaced By ``UserSimultaneousRingPersonalModifyRequest14sp4()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "incoming_calls",
            "incomingCalls",
            str,
            False,
            False,
            False,
        ),
        E(
            "sim_ring_phone_number_list",
            "simRingPhoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* incomingCalls
    incoming_calls = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementOutgoingDNorSIPURIList: *Optional* simRingPhoneNumberList
    sim_ring_phone_number_list = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList,
        required=False,
    )


class UserSpeedDial100AddListRequest(OCIRequest):
    """
    Add one or more speed dial 100 settings for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "speed_dial_entry",
            "speedDialEntry",
            OCI.SpeedDial100Entry,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.SpeedDial100Entry: *Required* speedDialEntry
    speed_dial_entry = Field(
        type=OCI.SpeedDial100Entry,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "speed_dial_entry",
            "speedDialEntry",
            OCI.SpeedDial100EntryModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.SpeedDial100EntryModify: *Optional* speedDialEntry
    speed_dial_entry = Field(
        type=OCI.SpeedDial100EntryModify,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "speed_dial_entry",
            "speedDialEntry",
            OCI.SpeedDial8Entry,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.SpeedDial8Entry: *Optional* speedDialEntry
    speed_dial_entry = Field(
        type=OCI.SpeedDial8Entry,
        required=False,
    )


class UserTimeScheduleAddRequest(OCIRequest):
    """
    Add a time schedule for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_interval01",
            "timeInterval01",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval02",
            "timeInterval02",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval03",
            "timeInterval03",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval04",
            "timeInterval04",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval05",
            "timeInterval05",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval06",
            "timeInterval06",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval07",
            "timeInterval07",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval08",
            "timeInterval08",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval09",
            "timeInterval09",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval10",
            "timeInterval10",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval11",
            "timeInterval11",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval12",
            "timeInterval12",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval13",
            "timeInterval13",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval14",
            "timeInterval14",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval15",
            "timeInterval15",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval16",
            "timeInterval16",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval17",
            "timeInterval17",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval18",
            "timeInterval18",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval19",
            "timeInterval19",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval20",
            "timeInterval20",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeInterval: *Optional* timeInterval01
    time_interval01 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval02
    time_interval02 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval03
    time_interval03 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval04
    time_interval04 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval05
    time_interval05 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval06
    time_interval06 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval07
    time_interval07 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval08
    time_interval08 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval09
    time_interval09 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval10
    time_interval10 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval11
    time_interval11 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval12
    time_interval12 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval13
    time_interval13 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval14
    time_interval14 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval15
    time_interval15 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval16
    time_interval16 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval17
    time_interval17 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval18
    time_interval18 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval19
    time_interval19 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval20
    time_interval20 = Field(
        type=OCI.TimeInterval,
        required=False,
    )


class UserTimeScheduleModifyRequest(OCIRequest):
    """
    Modify a user time schedule.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule_name",
            "timeScheduleName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_time_schedule_name",
            "newTimeScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_interval01",
            "timeInterval01",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval02",
            "timeInterval02",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval03",
            "timeInterval03",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval04",
            "timeInterval04",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval05",
            "timeInterval05",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval06",
            "timeInterval06",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval07",
            "timeInterval07",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval08",
            "timeInterval08",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval09",
            "timeInterval09",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval10",
            "timeInterval10",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval11",
            "timeInterval11",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval12",
            "timeInterval12",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval13",
            "timeInterval13",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval14",
            "timeInterval14",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval15",
            "timeInterval15",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval16",
            "timeInterval16",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval17",
            "timeInterval17",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval18",
            "timeInterval18",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval19",
            "timeInterval19",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
        E(
            "time_interval20",
            "timeInterval20",
            OCI.TimeInterval,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* timeScheduleName
    time_schedule_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newTimeScheduleName
    new_time_schedule_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval01
    time_interval01 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval02
    time_interval02 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval03
    time_interval03 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval04
    time_interval04 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval05
    time_interval05 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval06
    time_interval06 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval07
    time_interval07 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval08
    time_interval08 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval09
    time_interval09 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval10
    time_interval10 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval11
    time_interval11 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval12
    time_interval12 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval13
    time_interval13 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval14
    time_interval14 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval15
    time_interval15 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval16
    time_interval16 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval17
    time_interval17 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval18
    time_interval18 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval19
    time_interval19 = Field(
        type=OCI.TimeInterval,
        required=False,
    )
    #: OCI.TimeInterval: *Optional* timeInterval20
    time_interval20 = Field(
        type=OCI.TimeInterval,
        required=False,
    )


class UserVoiceMessagingUserModifyDistributionListRequest(OCIRequest):
    """
    Modify a voice mail distribution list for a users voice message.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "list_id",
            "listId",
            int,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number_list",
            "phoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Required* listId
    list_id = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementOutgoingDNorSIPURIList: *Optional* phoneNumberList
    phone_number_list = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "outgoing_smdimwi_phone_number_list",
            "outgoingSMDIMWIPhoneNumberList",
            OCI.ReplacementOutgoingDNList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementOutgoingDNList: *Optional* outgoingSMDIMWIPhoneNumberList
    outgoing_smdimwi_phone_number_list = Field(
        type=OCI.ReplacementOutgoingDNList,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_personalized_name",
            "usePersonalizedName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_auto_login",
            "voicePortalAutoLogin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "personalized_name_audio_file",
            "personalizedNameAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* usePersonalizedName
    use_personalized_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* voicePortalAutoLogin
    voice_portal_auto_login = Field(
        type=bool,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* personalizedNameAudioFile
    personalized_name_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_personalized_name",
            "usePersonalizedName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_auto_login",
            "voicePortalAutoLogin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "personalized_name_audio_file",
            "personalizedNameAudioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* usePersonalizedName
    use_personalized_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* voicePortalAutoLogin
    voice_portal_auto_login = Field(
        type=bool,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* personalizedNameAudioFile
    personalized_name_audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_personalized_name",
            "usePersonalizedName",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_auto_login",
            "voicePortalAutoLogin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "personalized_name_audio_file",
            "personalizedNameAudioFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* usePersonalizedName
    use_personalized_name = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* voicePortalAutoLogin
    voice_portal_auto_login = Field(
        type=bool,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* personalizedNameAudioFile
    personalized_name_audio_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )


class EnterpriseBroadWorksMobilityMobileSubscriberDirectoryNumberGetAssignmentListRequest(
    OCIRequest,
):
    """
    Request a summary table of all Mobile Subscriber Directory Numbers in an enterprise.
    The response is either ``EnterpriseBroadWorksMobilityMobileSubscriberDirectoryNumberGetAssignmentListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_mobile_network",
            "searchCriteriaExactMobileNetwork",
            OCI.SearchCriteriaExactMobileNetwork,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaMobileSubscriberDirectoryNumber: *Optional*
    #: searchCriteriaMobileSubscriberDirectoryNumber
    search_criteria_mobile_subscriber_directory_number = Field(
        type=OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactMobileNetwork: *Optional* searchCriteriaExactMobileNetwork
    search_criteria_exact_mobile_network = Field(
        type=OCI.SearchCriteriaExactMobileNetwork,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_agents_table",
            "includeAgentsTable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeAgentsTable
    include_agents_table = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "exclude_agents_assigned_to_profile_name",
            "excludeAgentsAssignedToProfileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_agent_threshold_profile",
            "searchCriteriaAgentThresholdProfile",
            OCI.SearchCriteriaAgentThresholdProfile,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* excludeAgentsAssignedToProfileName
    exclude_agents_assigned_to_profile_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaAgentThresholdProfile: *Optional*
    #: searchCriteriaAgentThresholdProfile
    search_criteria_agent_threshold_profile = Field(
        type=OCI.SearchCriteriaAgentThresholdProfile,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterReportTemplateKey: *Optional*
    #: searchCriteriaExactCallCenterReportTemplateKey
    search_criteria_exact_call_center_report_template_key = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterReportTemplateKey: *Optional*
    #: searchCriteriaExactCallCenterReportTemplateKey
    search_criteria_exact_call_center_report_template_key = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterReportTemplateKey: *Optional*
    #: searchCriteriaExactCallCenterReportTemplateKey
    search_criteria_exact_call_center_report_template_key = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupId
    group_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupId
    group_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupId
    group_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter21,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* groupId
    group_id = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter21: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter21,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentity: *Optional*
    #: searchCriteriaAlternateTrunkIdentity
    search_criteria_alternate_trunk_identity = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentity,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentityDomain: *Optional*
    #: searchCriteriaAlternateTrunkIdentityDomain
    search_criteria_alternate_trunk_identity_domain = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentityDomain,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_route_list_assigned",
            "searchCriteriaExactUserRouteListAssigned",
            OCI.SearchCriteriaExactUserRouteListAssigned,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentity: *Optional*
    #: searchCriteriaAlternateTrunkIdentity
    search_criteria_alternate_trunk_identity = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentity,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentityDomain: *Optional*
    #: searchCriteriaAlternateTrunkIdentityDomain
    search_criteria_alternate_trunk_identity_domain = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentityDomain,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserRouteListAssigned: *Optional*
    #: searchCriteriaExactUserRouteListAssigned
    search_criteria_exact_user_route_list_assigned = Field(
        type=OCI.SearchCriteriaExactUserRouteListAssigned,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "enterprise_id",
            "enterpriseId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* enterpriseId
    enterprise_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class EnterprisePreAlertingAnnouncementModifyRequest(OCIRequest):
    """
    Modify the enterprise level pre-alerting service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_interruption",
            "announcementInterruption",
            str,
            False,
            False,
            False,
        ),
        E(
            "interruption_digit_sequence",
            "interruptionDigitSequence",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementInterruption
    announcement_interruption = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* interruptionDigitSequence
    interruption_digit_sequence = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.EnterpriseAccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.EnterpriseAccessDevice: *Required* devices
    devices = Field(
        type=OCI.EnterpriseAccessDevice,
        required=True,
    )


class EnterpriseSessionAdmissionControlGroupAddRequest(OCIRequest):
    """
    Request to add a session admission control group for the enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_session",
            "maxSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_session",
            "reservedSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "reserved_user_originating_sessions",
            "reservedUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_terminating_sessions",
            "reservedUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group",
            "becomeDefaultGroup",
            bool,
            False,
            True,
            False,
        ),
        E(
            "count_intra_sac_group_sessions",
            "countIntraSACGroupSessions",
            bool,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.EnterpriseAccessDevice,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maxSession
    max_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Required* reservedSession
    reserved_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* reservedUserOriginatingSessions
    reserved_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserTerminatingSessions
    reserved_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* becomeDefaultGroup
    become_default_group = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* countIntraSACGroupSessions
    count_intra_sac_group_sessions = Field(
        type=bool,
        required=True,
    )
    #: OCI.EnterpriseAccessDevice: *Optional* devices
    devices = Field(
        type=OCI.EnterpriseAccessDevice,
        required=False,
    )


class EnterpriseSessionAdmissionControlGroupAddRequest19sp1(OCIRequest):
    """
    Request to add a session admission control group for the enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "max_session",
            "maxSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_session",
            "reservedSession",
            int,
            False,
            True,
            False,
        ),
        E(
            "reserved_user_originating_sessions",
            "reservedUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_terminating_sessions",
            "reservedUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group",
            "becomeDefaultGroup",
            bool,
            False,
            True,
            False,
        ),
        E(
            "count_intra_sac_group_sessions",
            "countIntraSACGroupSessions",
            bool,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.EnterpriseAccessDevice,
            True,
            False,
            False,
        ),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Required* maxSession
    max_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Required* reservedSession
    reserved_session = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* reservedUserOriginatingSessions
    reserved_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserTerminatingSessions
    reserved_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* becomeDefaultGroup
    become_default_group = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* countIntraSACGroupSessions
    count_intra_sac_group_sessions = Field(
        type=bool,
        required=True,
    )
    #: OCI.EnterpriseAccessDevice: *Optional* devices
    devices = Field(
        type=OCI.EnterpriseAccessDevice,
        required=False,
    )
    #: bool: *Required* blockEmergencyAndRepairCallsDueToSACLimits
    block_emergency_and_repair_calls_due_to_sac_limits = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "devices",
            "devices",
            OCI.EnterpriseAccessDevice,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.EnterpriseAccessDevice: *Required* devices
    devices = Field(
        type=OCI.EnterpriseAccessDevice,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_endpoint_type",
            "searchCriteriaExactEndpointType",
            OCI.SearchCriteriaExactEndpointType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_type",
            "searchCriteriaExactUserType",
            OCI.SearchCriteriaExactUserType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_port_number",
            "searchCriteriaExactPortNumber",
            OCI.SearchCriteriaExactPortNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_access_device_endpoint_private_identity",
            "searchCriteriaAccessDeviceEndpointPrivateIdentity",
            OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExactEndpointType: *Optional* searchCriteriaExactEndpointType
    search_criteria_exact_endpoint_type = Field(
        type=OCI.SearchCriteriaExactEndpointType,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserType: *Optional* searchCriteriaExactUserType
    search_criteria_exact_user_type = Field(
        type=OCI.SearchCriteriaExactUserType,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactPortNumber: *Optional* searchCriteriaExactPortNumber
    search_criteria_exact_port_number = Field(
        type=OCI.SearchCriteriaExactPortNumber,
        required=False,
    )
    #: OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity: *Optional*
    #: searchCriteriaAccessDeviceEndpointPrivateIdentity
    search_criteria_access_device_endpoint_private_identity = Field(
        type=OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity,
        required=False,
    )


class GroupAccountAuthorizationCodesGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of non restricted users for the account/authorization codes service.
    The response is either ``GroupAccountAuthorizationCodesGetAvailableUserListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "broad_works_anywhere_scope",
            "broadWorksAnywhereScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "prompt_for_clid",
            "promptForCLID",
            str,
            False,
            True,
            False,
        ),
        E(
            "silent_prompt_mode",
            "silentPromptMode",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prompt_for_passcode",
            "promptForPasscode",
            bool,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* broadWorksAnywhereScope
    broad_works_anywhere_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* promptForCLID
    prompt_for_clid = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* silentPromptMode
    silent_prompt_mode = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* promptForPasscode
    prompt_for_passcode = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class GroupBroadWorksAnywhereModifyInstanceRequest(OCIRequest):
    """
    Request to modify a BroadWorks Anywhere instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "broad_works_anywhere_scope",
            "broadWorksAnywhereScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "prompt_for_clid",
            "promptForCLID",
            str,
            False,
            False,
            False,
        ),
        E(
            "silent_prompt_mode",
            "silentPromptMode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "prompt_for_passcode",
            "promptForPasscode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* broadWorksAnywhereScope
    broad_works_anywhere_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* promptForCLID
    prompt_for_clid = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* silentPromptMode
    silent_prompt_mode = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* promptForPasscode
    prompt_for_passcode = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaMobileSubscriberDirectoryNumber: *Optional*
    #: searchCriteriaMobileSubscriberDirectoryNumber
    search_criteria_mobile_subscriber_directory_number = Field(
        type=OCI.SearchCriteriaMobileSubscriberDirectoryNumber,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* name
    name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_music_on_hold",
            "playMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_comfort_message",
            "playComfortMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playMusicOnHold
    play_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playComfortMessage
    play_comfort_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_music_on_hold",
            "playMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_comfort_message",
            "playComfortMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_call_queue_when_no_agents_available",
            "enableCallQueueWhenNoAgentsAvailable",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playMusicOnHold
    play_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playComfortMessage
    play_comfort_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableCallQueueWhenNoAgentsAvailable
    enable_call_queue_when_no_agents_available = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_music_on_hold",
            "playMusicOnHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_comfort_message",
            "playComfortMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_call_queue_when_no_agents_available",
            "enableCallQueueWhenNoAgentsAvailable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "statistics_source",
            "statisticsSource",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playMusicOnHold
    play_music_on_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playComfortMessage
    play_comfort_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableCallQueueWhenNoAgentsAvailable
    enable_call_queue_when_no_agents_available = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* statisticsSource
    statistics_source = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            True,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* escapeDigit
    escape_digit = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=False,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Required* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: str: *Required* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            True,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* escapeDigit
    escape_digit = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=False,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Required* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: str: *Required* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_reporting",
            "enableReporting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            True,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Optional* enableReporting
    enable_reporting = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* escapeDigit
    escape_digit = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=False,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Required* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: str: *Required* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_reporting",
            "enableReporting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            True,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Optional* enableReporting
    enable_reporting = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* escapeDigit
    escape_digit = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Required* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: str: *Required* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "routing_type",
            "routingType",
            str,
            False,
            False,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_reporting",
            "enableReporting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            True,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            True,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* routingType
    routing_type = Field(
        type=str,
        required=False,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Optional* enableReporting
    enable_reporting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Required* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* escapeDigit
    escape_digit = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Required* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: str: *Required* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_agents_table",
            "includeAgentsTable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeAgentsTable
    include_agents_table = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "exclude_agents_assigned_to_profile_name",
            "excludeAgentsAssignedToProfileName",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_agent_threshold_profile",
            "searchCriteriaAgentThresholdProfile",
            OCI.SearchCriteriaAgentThresholdProfile,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* excludeAgentsAssignedToProfileName
    exclude_agents_assigned_to_profile_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaAgentThresholdProfile: *Optional*
    #: searchCriteriaAgentThresholdProfile
    search_criteria_agent_threshold_profile = Field(
        type=OCI.SearchCriteriaAgentThresholdProfile,
        required=False,
    )


class GroupCallCenterComfortMessageBypassModifyRequest(OCIRequest):
    """
    Modify a call center's comfort message bypass settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_age_threshold_seconds",
            "callWaitingAgeThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_after_ringing",
            "playAnnouncementAfterRinging",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ring_time_before_playing_announcement_seconds",
            "ringTimeBeforePlayingAnnouncementSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* callWaitingAgeThresholdSeconds
    call_waiting_age_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementAfterRinging
    play_announcement_after_ringing = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ringTimeBeforePlayingAnnouncementSeconds
    ring_time_before_playing_announcement_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCallCenterComfortMessageBypassModifyRequest17(OCIRequest):
    """
    Modify a call center's comfort message bypass
    settings.
    The response is either a ``SuccessResponse()``
    or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_age_threshold_seconds",
            "callWaitingAgeThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_after_ringing",
            "playAnnouncementAfterRinging",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ring_time_before_playing_announcement_seconds",
            "ringTimeBeforePlayingAnnouncementSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* callWaitingAgeThresholdSeconds
    call_waiting_age_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementAfterRinging
    play_announcement_after_ringing = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ringTimeBeforePlayingAnnouncementSeconds
    ring_time_before_playing_announcement_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupCallCenterComfortMessageBypassModifyRequest20(OCIRequest):
    """
    Modify a call center's comfort message bypass settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_age_threshold_seconds",
            "callWaitingAgeThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_after_ringing",
            "playAnnouncementAfterRinging",
            bool,
            False,
            False,
            False,
        ),
        E(
            "ring_time_before_playing_announcement_seconds",
            "ringTimeBeforePlayingAnnouncementSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* callWaitingAgeThresholdSeconds
    call_waiting_age_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementAfterRinging
    play_announcement_after_ringing = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* ringTimeBeforePlayingAnnouncementSeconds
    ring_time_before_playing_announcement_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterReportTemplateKey: *Optional*
    #: searchCriteriaExactCallCenterReportTemplateKey
    search_criteria_exact_call_center_report_template_key = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterReportTemplateKey: *Optional*
    #: searchCriteriaExactCallCenterReportTemplateKey
    search_criteria_exact_call_center_report_template_key = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaCallCenterScheduledReportName: *Optional*
    #: searchCriteriaCallCenterScheduledReportName
    search_criteria_call_center_scheduled_report_name = Field(
        type=OCI.SearchCriteriaCallCenterScheduledReportName,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor: *Optional*
    #: searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False,
    )
    #: OCI.SearchCriteriaExactCallCenterReportTemplateKey: *Optional*
    #: searchCriteriaExactCallCenterReportTemplateKey
    search_criteria_exact_call_center_report_template_key = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey,
        required=False,
    )


class GroupCallCenterForcedForwardingModifyRequest(OCIRequest):
    """
    Modify a call center's forced forwarding settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_enable_via_fac",
            "allowEnableViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_forwarding",
            "playAnnouncementBeforeForwarding",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowEnableViaFAC
    allow_enable_via_fac = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeForwarding
    play_announcement_before_forwarding = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCallCenterForcedForwardingModifyRequest17(OCIRequest):
    """
    Modify a call center's forced forwarding
    settings.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_enable_via_fac",
            "allowEnableViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_forwarding",
            "playAnnouncementBeforeForwarding",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowEnableViaFAC
    allow_enable_via_fac = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeForwarding
    play_announcement_before_forwarding = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupCallCenterForcedForwardingModifyRequest20(OCIRequest):
    """
    Modify a call center's forced forwarding settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_enable_via_fac",
            "allowEnableViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_forwarding",
            "playAnnouncementBeforeForwarding",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowEnableViaFAC
    allow_enable_via_fac = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeForwarding
    play_announcement_before_forwarding = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupCallCenterGetAgentListRequest(OCIRequest):
    """
    Get a list of agents assigned to a call center.
    The response is either a
    ``GroupCallCenterGetAgentListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_skill_level",
            "searchCriteriaExactSkillLevel",
            OCI.SearchCriteriaExactSkillLevel,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactSkillLevel: *Optional* searchCriteriaExactSkillLevel
    search_criteria_exact_skill_level = Field(
        type=OCI.SearchCriteriaExactSkillLevel,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_center_type",
            "callCenterType",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callCenterType
    call_center_type = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )


class GroupCallCenterHolidayServiceModifyRequest(OCIRequest):
    """
    Modify a call center's holiday service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCallCenterHolidayServiceModifyRequest17(OCIRequest):
    """
    Modify a call center's holiday service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "skilled_agent_user_id_list",
            "skilledAgentUserIdList",
            OCI.CallCenterReplacementSkilledAgents,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: OCI.CallCenterReplacementSkilledAgents: *Optional* skilledAgentUserIdList
    skilled_agent_user_id_list = Field(
        type=OCI.CallCenterReplacementSkilledAgents,
        required=False,
    )


class GroupCallCenterModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Call Center instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By ``GroupCallCenterModifyInstanceRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            False,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_music_on_hold",
            "playMusicOnHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_comfort_message",
            "playComfortMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_guard_timer",
            "enableGuardTimer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "guard_timer_seconds",
            "guardTimerSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_call_queue_when_no_agents_available",
            "enableCallQueueWhenNoAgentsAvailable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "statistics_source",
            "statisticsSource",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* policy
    policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* queueLength
    queue_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playMusicOnHold
    play_music_on_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playComfortMessage
    play_comfort_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableGuardTimer
    enable_guard_timer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* guardTimerSeconds
    guard_timer_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: bool: *Optional* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableCallQueueWhenNoAgentsAvailable
    enable_call_queue_when_no_agents_available = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* statisticsSource
    statistics_source = Field(
        type=str,
        required=False,
    )


class GroupCallCenterModifyInstanceRequest16(OCIRequest):
    """
    Request to modify a Call Center instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            False,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            False,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* type
    type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* policy
    policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* queueLength
    queue_length = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* escapeDigit
    escape_digit = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=False,
    )


class GroupCallCenterModifyInstanceRequest17sp1(OCIRequest):
    """
    Request to modify a Call Center instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By ``GroupCallCenterModifyInstanceRequest19()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            False,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_reporting",
            "enableReporting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reporting_server_name",
            "reportingServerName",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            False,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* type
    type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* policy
    policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* queueLength
    queue_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableReporting
    enable_reporting = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* reportingServerName
    reporting_server_name = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* escapeDigit
    escape_digit = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=False,
    )


class GroupCallCenterModifyInstanceRequest19(OCIRequest):
    """
    Request to modify a Call Center instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            False,
            False,
        ),
        E(
            "routing_type",
            "routingType",
            str,
            False,
            False,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_reporting",
            "enableReporting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_caller_to_dial_escape_digit",
            "allowCallerToDialEscapeDigit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "escape_digit",
            "escapeDigit",
            str,
            False,
            False,
            False,
        ),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_agent_logoff",
            "allowAgentLogoff",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up",
            "allowCallsToAgentsInWrapUp",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* type
    type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* routingType
    routing_type = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* policy
    policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* queueLength
    queue_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableReporting
    enable_reporting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallerToDialEscapeDigit
    allow_caller_to_dial_escape_digit = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* escapeDigit
    escape_digit = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* resetCallStatisticsUponEntryInQueue
    reset_call_statistics_upon_entry_in_queue = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowAgentLogoff
    allow_agent_logoff = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowCallsToAgentsInWrapUp
    allow_calls_to_agents_in_wrap_up = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class GroupCallCenterNightServiceModifyRequest(OCIRequest):
    """
    Modify a call center's night service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_manual_override_via_fac",
            "allowManualOverrideViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_file",
            "manualAudioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_file",
            "manualVideoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowManualOverrideViaFAC
    allow_manual_override_via_fac = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* manualAudioFile
    manual_audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* manualVideoFile
    manual_video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCallCenterNightServiceModifyRequest17(OCIRequest):
    """
    Modify a call center's night service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_manual_override_via_fac",
            "allowManualOverrideViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_url_list",
            "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_audio_file_list",
            "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_url_list",
            "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_file_list",
            "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowManualOverrideViaFAC
    allow_manual_override_via_fac = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualAudioUrlList
    manual_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualAudioFileList
    manual_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualVideoUrlList
    manual_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualVideoFileList
    manual_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_manual_override_via_fac",
            "allowManualOverrideViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_url_list",
            "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_audio_file_list",
            "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_url_list",
            "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_file_list",
            "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowManualOverrideViaFAC
    allow_manual_override_via_fac = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualAudioUrlList
    manual_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualAudioFileList
    manual_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualVideoUrlList
    manual_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualVideoFileList
    manual_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_manual_override_via_fac",
            "allowManualOverrideViaFAC",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_url_list",
            "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_audio_file_list",
            "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_url_list",
            "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_file_list",
            "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowManualOverrideViaFAC
    allow_manual_override_via_fac = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualAudioUrlList
    manual_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* manualAudioFileList
    manual_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualVideoUrlList
    manual_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* manualVideoFileList
    manual_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupCallCenterOverflowModifyRequest(OCIRequest):
    """
    Modify a call center's overflow settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "overflow_after_timeout",
            "overflowAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* overflowAfterTimeout
    overflow_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeOverflowProcessing
    play_announcement_before_overflow_processing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCallCenterOverflowModifyRequest17(OCIRequest):
    """
    Modify a call center's overflow settings.
    The
    response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "overflow_after_timeout",
            "overflowAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* overflowAfterTimeout
    overflow_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeOverflowProcessing
    play_announcement_before_overflow_processing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupCallCenterOverflowModifyRequest20(OCIRequest):
    """
    Modify a call center's overflow settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "overflow_after_timeout",
            "overflowAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* overflowAfterTimeout
    overflow_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeOverflowProcessing
    play_announcement_before_overflow_processing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupCallCenterStrandedCallModifyRequest(OCIRequest):
    """
    Modify a call center's stranded call settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCallCenterStrandedCallModifyRequest17(OCIRequest):
    """
    Modify a call center's stranded call settings.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupCallCenterStrandedCallModifyRequest20(OCIRequest):
    """
    Modify a call center's stranded call settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupCallCenterStrandedCallUnavailableModifyRequest(OCIRequest):
    """
    Modify a call center's stranded calls -
    unavailable settings.
    The response is either a
    ``SuccessResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "condition_policy_on_number_of_agents_with_specified_unavailable_code",
            "conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_agents_with_specified_unavailable_code",
            "numberOfAgentsWithSpecifiedUnavailableCode",
            int,
            False,
            False,
            False,
        ),
        E(
            "agents_unavailable_code",
            "agentsUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode
    condition_policy_on_number_of_agents_with_specified_unavailable_code = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfAgentsWithSpecifiedUnavailableCode
    number_of_agents_with_specified_unavailable_code = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* agentsUnavailableCode
    agents_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupCallCenterStrandedCallUnavailableModifyRequest20(OCIRequest):
    """
    Modify a call center's stranded calls - unavailable settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "condition_policy_on_number_of_agents_with_specified_unavailable_code",
            "conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode",
            bool,
            False,
            False,
            False,
        ),
        E(
            "number_of_agents_with_specified_unavailable_code",
            "numberOfAgentsWithSpecifiedUnavailableCode",
            int,
            False,
            False,
            False,
        ),
        E(
            "agents_unavailable_code",
            "agentsUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode
    condition_policy_on_number_of_agents_with_specified_unavailable_code = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* numberOfAgentsWithSpecifiedUnavailableCode
    number_of_agents_with_specified_unavailable_code = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* agentsUnavailableCode
    agents_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* name
    name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* name
    name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "maximum_bridge_participants",
            "maximumBridgeParticipants",
            OCI.CollaborateBridgeMaximumParticipants,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_collaborate_room_participants",
            "maxCollaborateRoomParticipants",
            int,
            False,
            True,
            False,
        ),
        E(
            "support_outdial",
            "supportOutdial",
            bool,
            False,
            True,
            False,
        ),
        E(
            "collaborate_owner_user_id",
            "collaborateOwnerUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: OCI.CollaborateBridgeMaximumParticipants: *Required* maximumBridgeParticipants
    maximum_bridge_participants = Field(
        type=OCI.CollaborateBridgeMaximumParticipants,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: int: *Required* maxCollaborateRoomParticipants
    max_collaborate_room_participants = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* supportOutdial
    support_outdial = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* collaborateOwnerUserId
    collaborate_owner_user_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "maximum_bridge_participants",
            "maximumBridgeParticipants",
            OCI.CollaborateBridgeMaximumParticipants,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_collaborate_room_participants",
            "maxCollaborateRoomParticipants",
            int,
            False,
            False,
            False,
        ),
        E(
            "support_outdial",
            "supportOutdial",
            bool,
            False,
            False,
            False,
        ),
        E(
            "collaborate_owner_user_id_list",
            "collaborateOwnerUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: OCI.CollaborateBridgeMaximumParticipants: *Optional* maximumBridgeParticipants
    maximum_bridge_participants = Field(
        type=OCI.CollaborateBridgeMaximumParticipants,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxCollaborateRoomParticipants
    max_collaborate_room_participants = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* supportOutdial
    support_outdial = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* collaborateOwnerUserIdList
    collaborate_owner_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class GroupCustomContactDirectoryModifyRequest17(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "entry_list",
            "entryList",
            OCI.ReplacementCustomContactDirectoryEntryList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementCustomContactDirectoryEntryList: *Optional* entryList
    entry_list = Field(
        type=OCI.ReplacementCustomContactDirectoryEntryList,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )


class GroupCustomRingbackGroupModifyRequest16(OCIRequest):
    """
    Modify the group's custom ring back service
    settings.
    The response is either a ``SuccessResponse()`` or
    an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupCustomRingbackGroupModifyRequest20(OCIRequest):
    """
    Modify the group's custom ring back service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource20,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource20: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource20,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource20: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource20,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_dn_department",
            "searchCriteriaExactDnDepartment",
            OCI.SearchCriteriaExactDnDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_dn_activation",
            "searchCriteriaExactDnActivation",
            OCI.SearchCriteriaExactDnActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaExactDnDepartment: *Optional* searchCriteriaExactDnDepartment
    search_criteria_exact_dn_department = Field(
        type=OCI.SearchCriteriaExactDnDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactDnActivation: *Optional* searchCriteriaExactDnActivation
    search_criteria_exact_dn_activation = Field(
        type=OCI.SearchCriteriaExactDnActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_dn_department",
            "searchCriteriaExactDnDepartment",
            OCI.SearchCriteriaExactDnDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_dn_activation",
            "searchCriteriaExactDnActivation",
            OCI.SearchCriteriaExactDnActivation,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaExactDnDepartment: *Optional* searchCriteriaExactDnDepartment
    search_criteria_exact_dn_department = Field(
        type=OCI.SearchCriteriaExactDnDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactDnActivation: *Optional* searchCriteriaExactDnActivation
    search_criteria_exact_dn_activation = Field(
        type=OCI.SearchCriteriaExactDnActivation,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "domain",
            "domain",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* domain
    domain = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class GroupEndpointGetListRequest(OCIRequest):
    """
    Request to search endpoints in the group.
    The response is either ``GroupEndpointGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_type",
            "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceType: *Optional* searchCriteriaDeviceType
    search_criteria_device_type = Field(
        type=OCI.SearchCriteriaDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "user_dn_range",
            "userDnRange",
            OCI.DNRange,
            True,
            False,
            False,
        ),
        E(
            "user_extension_range",
            "userExtensionRange",
            OCI.ExtensionRange17,
            True,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter21,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.DNRange: *Optional* userDnRange
    user_dn_range = Field(
        type=OCI.DNRange,
        required=False,
    )
    #: OCI.ExtensionRange17: *Optional* userExtensionRange
    user_extension_range = Field(
        type=OCI.ExtensionRange17,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter21: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter21,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentity: *Optional*
    #: searchCriteriaAlternateTrunkIdentity
    search_criteria_alternate_trunk_identity = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentity,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentityDomain: *Optional*
    #: searchCriteriaAlternateTrunkIdentityDomain
    search_criteria_alternate_trunk_identity_domain = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentityDomain,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "enterprise_trunk_name",
            "enterpriseTrunkName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_route_list_assigned",
            "searchCriteriaExactUserRouteListAssigned",
            OCI.SearchCriteriaExactUserRouteListAssigned,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* enterpriseTrunkName
    enterprise_trunk_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentity: *Optional*
    #: searchCriteriaAlternateTrunkIdentity
    search_criteria_alternate_trunk_identity = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentity,
        required=False,
    )
    #: OCI.SearchCriteriaAlternateTrunkIdentityDomain: *Optional*
    #: searchCriteriaAlternateTrunkIdentityDomain
    search_criteria_alternate_trunk_identity_domain = Field(
        type=OCI.SearchCriteriaAlternateTrunkIdentityDomain,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserRouteListAssigned: *Optional*
    #: searchCriteriaExactUserRouteListAssigned
    search_criteria_exact_user_route_list_assigned = Field(
        type=OCI.SearchCriteriaExactUserRouteListAssigned,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "alerting_group_name",
            "alertingGroupName",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* alertingGroupName
    alerting_group_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=False,
    )


class GroupFindMeFollowMeModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Find-me/Follow-me instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileFlexibleSeatingHost,
            True,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileFlexibleSeatingHost: *Required*
    #: serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileFlexibleSeatingHost,
        required=True,
    )
    #: OCI.AccessDeviceMultipleContactEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceMultipleContactEndpointAdd,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_department_name",
            "groupDepartmentName",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_service_instance_name",
            "searchCriteriaServiceInstanceName",
            OCI.SearchCriteriaServiceInstanceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* groupDepartmentName
    group_department_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaServiceInstanceName: *Optional*
    #: searchCriteriaServiceInstanceName
    search_criteria_service_instance_name = Field(
        type=OCI.SearchCriteriaServiceInstanceName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class GroupFlexibleSeatingHostModifyInstanceRequest(OCIRequest):
    """
    Request to modify a flexible seating host instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfileFlexibleSeatingHost,
            True,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointModify,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfileFlexibleSeatingHost: *Optional*
    #: serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfileFlexibleSeatingHost,
        required=False,
    )
    #: OCI.AccessDeviceMultipleContactEndpointModify: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceMultipleContactEndpointModify,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "confirmation_tone_timeout_seconds",
            "confirmationToneTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "deliver_originator_clid_instead",
            "deliverOriginatorCLIDInstead",
            bool,
            False,
            True,
            False,
        ),
        E(
            "originator_clid_prefix",
            "originatorCLIDPrefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: int: *Required* confirmationToneTimeoutSeconds
    confirmation_tone_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* deliverOriginatorCLIDInstead
    deliver_originator_clid_instead = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* originatorCLIDPrefix
    originator_clid_prefix = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class GroupGroupPagingModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Group Paging instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "confirmation_tone_timeout_seconds",
            "confirmationToneTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "deliver_originator_clid_instead",
            "deliverOriginatorCLIDInstead",
            bool,
            False,
            False,
            False,
        ),
        E(
            "originator_clid_prefix",
            "originatorCLIDPrefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: int: *Optional* confirmationToneTimeoutSeconds
    confirmation_tone_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* deliverOriginatorCLIDInstead
    deliver_originator_clid_instead = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* originatorCLIDPrefix
    originator_clid_prefix = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_system_hunt_group_clid_setting",
            "useSystemHuntGroupCLIDSetting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_hunt_group_name_in_clid",
            "includeHuntGroupNameInCLID",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useSystemHuntGroupCLIDSetting
    use_system_hunt_group_clid_setting = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeHuntGroupNameInCLID
    include_hunt_group_name_in_clid = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_system_hunt_group_clid_setting",
            "useSystemHuntGroupCLIDSetting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_hunt_group_name_in_clid",
            "includeHuntGroupNameInCLID",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_not_reachable_forwarding",
            "enableNotReachableForwarding",
            bool,
            False,
            True,
            False,
        ),
        E(
            "not_reachable_forward_to_phone_number",
            "notReachableForwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "make_busy_when_not_reachable",
            "makeBusyWhenNotReachable",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useSystemHuntGroupCLIDSetting
    use_system_hunt_group_clid_setting = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeHuntGroupNameInCLID
    include_hunt_group_name_in_clid = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNotReachableForwarding
    enable_not_reachable_forwarding = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* notReachableForwardToPhoneNumber
    not_reachable_forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* makeBusyWhenNotReachable
    make_busy_when_not_reachable = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_system_hunt_group_clid_setting",
            "useSystemHuntGroupCLIDSetting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_hunt_group_name_in_clid",
            "includeHuntGroupNameInCLID",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_not_reachable_forwarding",
            "enableNotReachableForwarding",
            bool,
            False,
            True,
            False,
        ),
        E(
            "not_reachable_forward_to_phone_number",
            "notReachableForwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "make_busy_when_not_reachable",
            "makeBusyWhenNotReachable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_members_to_control_group_busy",
            "allowMembersToControlGroupBusy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_group_busy",
            "enableGroupBusy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useSystemHuntGroupCLIDSetting
    use_system_hunt_group_clid_setting = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeHuntGroupNameInCLID
    include_hunt_group_name_in_clid = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNotReachableForwarding
    enable_not_reachable_forwarding = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* notReachableForwardToPhoneNumber
    not_reachable_forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* makeBusyWhenNotReachable
    make_busy_when_not_reachable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowMembersToControlGroupBusy
    allow_members_to_control_group_busy = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableGroupBusy
    enable_group_busy = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            True,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id",
            "agentUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_system_hunt_group_clid_setting",
            "useSystemHuntGroupCLIDSetting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_hunt_group_name_in_clid",
            "includeHuntGroupNameInCLID",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_not_reachable_forwarding",
            "enableNotReachableForwarding",
            bool,
            False,
            True,
            False,
        ),
        E(
            "not_reachable_forward_to_phone_number",
            "notReachableForwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "make_busy_when_not_reachable",
            "makeBusyWhenNotReachable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_members_to_control_group_busy",
            "allowMembersToControlGroupBusy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_group_busy",
            "enableGroupBusy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "apply_group_busy_when_terminating_to_agent",
            "applyGroupBusyWhenTerminatingToAgent",
            bool,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* policy
    policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUserId
    agent_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useSystemHuntGroupCLIDSetting
    use_system_hunt_group_clid_setting = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeHuntGroupNameInCLID
    include_hunt_group_name_in_clid = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNotReachableForwarding
    enable_not_reachable_forwarding = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* notReachableForwardToPhoneNumber
    not_reachable_forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* makeBusyWhenNotReachable
    make_busy_when_not_reachable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowMembersToControlGroupBusy
    allow_members_to_control_group_busy = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableGroupBusy
    enable_group_busy = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* applyGroupBusyWhenTerminatingToAgent
    apply_group_busy_when_terminating_to_agent = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "policy",
            "policy",
            str,
            False,
            False,
            False,
        ),
        E(
            "hunt_after_no_answer",
            "huntAfterNoAnswer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "forward_after_timeout",
            "forwardAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_timeout_seconds",
            "forwardTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_user_id_list",
            "agentUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "allow_call_waiting_for_agents",
            "allowCallWaitingForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_system_hunt_group_clid_setting",
            "useSystemHuntGroupCLIDSetting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_hunt_group_name_in_clid",
            "includeHuntGroupNameInCLID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_not_reachable_forwarding",
            "enableNotReachableForwarding",
            bool,
            False,
            False,
            False,
        ),
        E(
            "not_reachable_forward_to_phone_number",
            "notReachableForwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "make_busy_when_not_reachable",
            "makeBusyWhenNotReachable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_members_to_control_group_busy",
            "allowMembersToControlGroupBusy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_group_busy",
            "enableGroupBusy",
            bool,
            False,
            False,
            False,
        ),
        E(
            "apply_group_busy_when_terminating_to_agent",
            "applyGroupBusyWhenTerminatingToAgent",
            bool,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* policy
    policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* huntAfterNoAnswer
    hunt_after_no_answer = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* forwardAfterTimeout
    forward_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forwardTimeoutSeconds
    forward_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* agentUserIdList
    agent_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: bool: *Optional* allowCallWaitingForAgents
    allow_call_waiting_for_agents = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useSystemHuntGroupCLIDSetting
    use_system_hunt_group_clid_setting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeHuntGroupNameInCLID
    include_hunt_group_name_in_clid = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableNotReachableForwarding
    enable_not_reachable_forwarding = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* notReachableForwardToPhoneNumber
    not_reachable_forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* makeBusyWhenNotReachable
    make_busy_when_not_reachable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowMembersToControlGroupBusy
    allow_members_to_control_group_busy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableGroupBusy
    enable_group_busy = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* applyGroupBusyWhenTerminatingToAgent
    apply_group_busy_when_terminating_to_agent = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class GroupIncomingCallingPlanModifyListRequest(OCIRequest):
    """
    Change the group's incoming calling plan settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.IncomingCallingPlanPermissionsModify,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.IncomingCallingPlanDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.IncomingCallingPlanPermissionsModify: *Optional* groupPermissions
    group_permissions = Field(
        type=OCI.IncomingCallingPlanPermissionsModify,
        required=False,
    )
    #: OCI.IncomingCallingPlanDepartmentPermissionsModify: *Optional*
    #: departmentPermissions
    department_permissions = Field(
        type=OCI.IncomingCallingPlanDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "destination_phone_number",
            "destinationPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_answer_timeout_enabled",
            "isAnswerTimeoutEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "answer_timeout_minutes",
            "answerTimeoutMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Optional* destinationPhoneNumber
    destination_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isAnswerTimeoutEnabled
    is_answer_timeout_enabled = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* answerTimeoutMinutes
    answer_timeout_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class GroupInstantGroupCallModifyInstanceRequest(OCIRequest):
    """
    Request to modify an Instant Group Call service instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "destination_phone_number_list",
            "destinationPhoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList,
            True,
            False,
            False,
        ),
        E(
            "is_answer_timeout_enabled",
            "isAnswerTimeoutEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "answer_timeout_minutes",
            "answerTimeoutMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: OCI.ReplacementOutgoingDNorSIPURIList: *Optional* destinationPhoneNumberList
    destination_phone_number_list = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList,
        required=False,
    )
    #: bool: *Optional* isAnswerTimeoutEnabled
    is_answer_timeout_enabled = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* answerTimeoutMinutes
    answer_timeout_minutes = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class GroupMWIDeliveryToMobileEndpointCustomTemplateAddRequest(OCIRequest):
    """
    Create a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "template_body",
            "templateBody",
            OCI.MWIDeliveryToMobileEndpointTemplateBody,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnabled
    is_enabled = Field(
        type=bool,
        required=True,
    )
    #: OCI.MWIDeliveryToMobileEndpointTemplateBody: *Required* templateBody
    template_body = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody,
        required=True,
    )


class GroupMWIDeliveryToMobileEndpointCustomTemplateModifyRequest(OCIRequest):
    """
    Modify a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "template_body",
            "templateBody",
            OCI.MWIDeliveryToMobileEndpointTemplateBody,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isEnabled
    is_enabled = Field(
        type=bool,
        required=False,
    )
    #: OCI.MWIDeliveryToMobileEndpointTemplateBody: *Optional* templateBody
    template_body = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "allocated_ports",
            "allocatedPorts",
            OCI.MeetMeConferencingConferencePorts,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_individual_out_dial",
            "allowIndividualOutDial",
            bool,
            False,
            True,
            False,
        ),
        E(
            "operator_number",
            "operatorNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_host_user_id",
            "conferenceHostUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: OCI.MeetMeConferencingConferencePorts: *Required* allocatedPorts
    allocated_ports = Field(
        type=OCI.MeetMeConferencingConferencePorts,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowIndividualOutDial
    allow_individual_out_dial = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* operatorNumber
    operator_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* conferenceHostUserId
    conference_host_user_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "allocated_ports",
            "allocatedPorts",
            OCI.MeetMeConferencingConferencePorts,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_individual_out_dial",
            "allowIndividualOutDial",
            bool,
            False,
            True,
            False,
        ),
        E(
            "operator_number",
            "operatorNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_host_user_id",
            "conferenceHostUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_warning_prompt",
            "playWarningPrompt",
            bool,
            False,
            True,
            False,
        ),
        E(
            "conference_end_warning_prompt_minutes",
            "conferenceEndWarningPromptMinutes",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_max_conference_duration",
            "enableMaxConferenceDuration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_conference_duration_minutes",
            "maxConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: OCI.MeetMeConferencingConferencePorts: *Required* allocatedPorts
    allocated_ports = Field(
        type=OCI.MeetMeConferencingConferencePorts,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowIndividualOutDial
    allow_individual_out_dial = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* operatorNumber
    operator_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* conferenceHostUserId
    conference_host_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* playWarningPrompt
    play_warning_prompt = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* conferenceEndWarningPromptMinutes
    conference_end_warning_prompt_minutes = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableMaxConferenceDuration
    enable_max_conference_duration = Field(
        type=bool,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceDuration: *Required* maxConferenceDurationMinutes
    max_conference_duration_minutes = Field(
        type=OCI.MeetMeConferencingConferenceDuration,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "allocated_ports",
            "allocatedPorts",
            OCI.MeetMeConferencingConferencePorts,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "security_pin_length",
            "securityPinLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "allow_individual_out_dial",
            "allowIndividualOutDial",
            bool,
            False,
            True,
            False,
        ),
        E(
            "operator_number",
            "operatorNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_host_user_id",
            "conferenceHostUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_warning_prompt",
            "playWarningPrompt",
            bool,
            False,
            True,
            False,
        ),
        E(
            "conference_end_warning_prompt_minutes",
            "conferenceEndWarningPromptMinutes",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_max_conference_duration",
            "enableMaxConferenceDuration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "max_conference_duration_minutes",
            "maxConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration,
            True,
            True,
            False,
        ),
        E(
            "max_scheduled_conference_duration_minutes",
            "maxScheduledConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: OCI.MeetMeConferencingConferencePorts: *Required* allocatedPorts
    allocated_ports = Field(
        type=OCI.MeetMeConferencingConferencePorts,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: int: *Required* securityPinLength
    security_pin_length = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* allowIndividualOutDial
    allow_individual_out_dial = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* operatorNumber
    operator_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* conferenceHostUserId
    conference_host_user_id = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* playWarningPrompt
    play_warning_prompt = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* conferenceEndWarningPromptMinutes
    conference_end_warning_prompt_minutes = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableMaxConferenceDuration
    enable_max_conference_duration = Field(
        type=bool,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceDuration: *Required* maxConferenceDurationMinutes
    max_conference_duration_minutes = Field(
        type=OCI.MeetMeConferencingConferenceDuration,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceDuration: *Required*
    #: maxScheduledConferenceDurationMinutes
    max_scheduled_conference_duration_minutes = Field(
        type=OCI.MeetMeConferencingConferenceDuration,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class GroupMeetMeConferencingModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Meet-Me Conferencing bridge.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "allocated_ports",
            "allocatedPorts",
            OCI.MeetMeConferencingConferencePorts,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "security_pin_length",
            "securityPinLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "allow_individual_out_dial",
            "allowIndividualOutDial",
            bool,
            False,
            False,
            False,
        ),
        E(
            "operator_number",
            "operatorNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "conference_host_user_id_list",
            "conferenceHostUserIdList",
            OCI.ReplacementUserIdList,
            True,
            False,
            False,
        ),
        E(
            "play_warning_prompt",
            "playWarningPrompt",
            bool,
            False,
            False,
            False,
        ),
        E(
            "conference_end_warning_prompt_minutes",
            "conferenceEndWarningPromptMinutes",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_max_conference_duration",
            "enableMaxConferenceDuration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_conference_duration_minutes",
            "maxConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration,
            True,
            False,
            False,
        ),
        E(
            "max_scheduled_conference_duration_minutes",
            "maxScheduledConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: OCI.MeetMeConferencingConferencePorts: *Optional* allocatedPorts
    allocated_ports = Field(
        type=OCI.MeetMeConferencingConferencePorts,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* securityPinLength
    security_pin_length = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* allowIndividualOutDial
    allow_individual_out_dial = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* operatorNumber
    operator_number = Field(
        type=str,
        required=False,
    )
    #: OCI.ReplacementUserIdList: *Optional* conferenceHostUserIdList
    conference_host_user_id_list = Field(
        type=OCI.ReplacementUserIdList,
        required=False,
    )
    #: bool: *Optional* playWarningPrompt
    play_warning_prompt = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* conferenceEndWarningPromptMinutes
    conference_end_warning_prompt_minutes = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableMaxConferenceDuration
    enable_max_conference_duration = Field(
        type=bool,
        required=False,
    )
    #: OCI.MeetMeConferencingConferenceDuration: *Optional* maxConferenceDurationMinutes
    max_conference_duration_minutes = Field(
        type=OCI.MeetMeConferencingConferenceDuration,
        required=False,
    )
    #: OCI.MeetMeConferencingConferenceDuration: *Optional*
    #: maxScheduledConferenceDurationMinutes
    max_scheduled_conference_duration_minutes = Field(
        type=OCI.MeetMeConferencingConferenceDuration,
        required=False,
    )


class GroupMusicOnHoldAddInstanceRequest14(OCIRequest):
    """
    Add a Music On Hold Instance to a department.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By GroupMusicOnHoldAddInstanceRequest14Sp4
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            True,
            False,
        ),
        E(
            "message_selection",
            "messageSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* messageSelection
    message_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class GroupMusicOnHoldAddInstanceRequest14sp4(OCIRequest):
    """
    Add a Music On Hold Instance to a department.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            True,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            True,
            False,
        ),
        E(
            "message_selection",
            "messageSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Required* department
    department = Field(
        type=OCI.DepartmentKey,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* messageSelection
    message_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )


class GroupMusicOnHoldModifyInstanceRequest14(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "is_active_during_call_hold",
            "isActiveDuringCallHold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_call_park",
            "isActiveDuringCallPark",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_active_during_busy_camp_on",
            "isActiveDuringBusyCampOn",
            bool,
            False,
            False,
            False,
        ),
        E(
            "message_selection",
            "messageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallHold
    is_active_during_call_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringCallPark
    is_active_during_call_park = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isActiveDuringBusyCampOn
    is_active_during_busy_camp_on = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* messageSelection
    message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceEndpointModify: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointModify,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledFileResource,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* officeZoneName
    office_zone_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanCallMeNowPermissionsModify,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanCallMeNowDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanCallMeNowPermissionsModify: *Optional* groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanCallMeNowPermissionsModify,
        required=False,
    )
    #: OCI.OutgoingCallingPlanCallMeNowDepartmentPermissionsModify: *Optional*
    #: departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanCallMeNowDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanOriginatingPermissionsModify,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanOriginatingDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanOriginatingPermissionsModify: *Optional* groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanOriginatingPermissionsModify,
        required=False,
    )
    #: OCI.OutgoingCallingPlanOriginatingDepartmentPermissionsModify: *Optional*
    #: departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanOriginatingDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanRedirectedPermissionsModify,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanRedirectedDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanRedirectedPermissionsModify: *Optional* groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanRedirectedPermissionsModify,
        required=False,
    )
    #: OCI.OutgoingCallingPlanRedirectedDepartmentPermissionsModify: *Optional*
    #: departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanRedirectedDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanRedirectingPermissionsModify,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanRedirectingDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanRedirectingPermissionsModify: *Optional* groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanRedirectingPermissionsModify,
        required=False,
    )
    #: OCI.OutgoingCallingPlanRedirectingDepartmentPermissionsModify: *Optional*
    #: departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanRedirectingDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_numbers",
            "groupNumbers",
            OCI.OutgoingCallingPlanTransferNumbersModify,
            True,
            False,
            False,
        ),
        E(
            "department_numbers",
            "departmentNumbers",
            OCI.OutgoingCallingPlanDepartmentTransferNumbersModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanTransferNumbersModify: *Optional* groupNumbers
    group_numbers = Field(
        type=OCI.OutgoingCallingPlanTransferNumbersModify,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDepartmentTransferNumbersModify: *Optional*
    #: departmentNumbers
    department_numbers = Field(
        type=OCI.OutgoingCallingPlanDepartmentTransferNumbersModify,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_extended_info_requested",
            "isExtendedInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isExtendedInfoRequested
    is_extended_info_requested = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class GroupPreAlertingAnnouncementModifyRequest(OCIRequest):
    """
    Modify the group level pre-alerting service
    settings.
    The response is either a ``SuccessResponse()`` or
    an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_interruption",
            "announcementInterruption",
            str,
            False,
            False,
            False,
        ),
        E(
            "interruption_digit_sequence",
            "interruptionDigitSequence",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementInterruption
    announcement_interruption = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* interruptionDigitSequence
    interruption_digit_sequence = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )


class GroupPreAlertingAnnouncementModifyRequest20(OCIRequest):
    """
    Modify the group level pre-alerting service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_interruption",
            "announcementInterruption",
            str,
            False,
            False,
            False,
        ),
        E(
            "interruption_digit_sequence",
            "interruptionDigitSequence",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource20,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* announcementInterruption
    announcement_interruption = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* interruptionDigitSequence
    interruption_digit_sequence = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource20: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource20,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource20: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource20,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            True,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            True,
            False,
        ),
        E(
            "no_answer_timeout_rings",
            "noAnswerTimeoutRings",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            True,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            True,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileCallCenter: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Required* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: str: *Required* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=True,
    )
    #: int: *Required* queueLength
    queue_length = Field(
        type=int,
        required=True,
    )
    #: int: *Required* noAnswerTimeoutRings
    no_answer_timeout_rings = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )


class GroupRoutePointForcedForwardingModifyRequest(OCIRequest):
    """
    Modify a route point's forced forwarding
    settings.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_forwarding",
            "playAnnouncementBeforeForwarding",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeForwarding
    play_announcement_before_forwarding = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupRoutePointForcedForwardingModifyRequest20(OCIRequest):
    """
    Modify a route point's forced forwarding settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_forwarding",
            "playAnnouncementBeforeForwarding",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeForwarding
    play_announcement_before_forwarding = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupRoutePointHolidayServiceModifyRequest(OCIRequest):
    """
    Modify a route point's holiday service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupRoutePointModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Route Point instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "external_preferred_audio_codec",
            "externalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "internal_preferred_audio_codec",
            "internalPreferredAudioCodec",
            str,
            False,
            False,
            False,
        ),
        E(
            "queue_length",
            "queueLength",
            int,
            False,
            False,
            False,
        ),
        E(
            "no_answer_timeout_rings",
            "noAnswerTimeoutRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "play_ringing_when_offering_call",
            "playRingingWhenOfferingCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "override_agent_wrap_up_time",
            "overrideAgentWrapUpTime",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wrap_up_seconds",
            "wrapUpSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents",
            bool,
            False,
            False,
            False,
        ),
        E(
            "agent_state_after_call",
            "agentStateAfterCall",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent_unavailable_code",
            "agentUnavailableCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_of_calls",
            "forceDeliveryOfCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "force_delivery_wait_time_seconds",
            "forceDeliveryWaitTimeSeconds",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* externalPreferredAudioCodec
    external_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* internalPreferredAudioCodec
    internal_preferred_audio_codec = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* queueLength
    queue_length = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* noAnswerTimeoutRings
    no_answer_timeout_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* playRingingWhenOfferingCall
    play_ringing_when_offering_call = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* overrideAgentWrapUpTime
    override_agent_wrap_up_time = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* wrapUpSeconds
    wrap_up_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableAutomaticStateChangeForAgents
    enable_automatic_state_change_for_agents = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* agentStateAfterCall
    agent_state_after_call = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* agentUnavailableCode
    agent_unavailable_code = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* forceDeliveryOfCalls
    force_delivery_of_calls = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* forceDeliveryWaitTimeSeconds
    force_delivery_wait_time_seconds = Field(
        type=int,
        required=False,
    )


class GroupRoutePointNightServiceModifyRequest(OCIRequest):
    """
    Modify a route point's night service settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_url_list",
            "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_audio_file_list",
            "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_url_list",
            "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_file_list",
            "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualAudioUrlList
    manual_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualAudioFileList
    manual_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualVideoUrlList
    manual_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualVideoFileList
    manual_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_url_list",
            "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_audio_file_list",
            "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_url_list",
            "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_file_list",
            "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualAudioUrlList
    manual_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualAudioFileList
    manual_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualVideoUrlList
    manual_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* manualVideoFileList
    manual_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "force_night_service",
            "forceNightService",
            bool,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_action",
            "playAnnouncementBeforeAction",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "manual_announcement_mode",
            "manualAnnouncementMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_message_selection",
            "manualAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_audio_url_list",
            "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_audio_file_list",
            "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "manual_video_message_selection",
            "manualVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "manual_video_url_list",
            "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "manual_video_file_list",
            "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: bool: *Optional* forceNightService
    force_night_service = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeAction
    play_announcement_before_action = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* manualAnnouncementMode
    manual_announcement_mode = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* manualAudioMessageSelection
    manual_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualAudioUrlList
    manual_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* manualAudioFileList
    manual_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* manualVideoMessageSelection
    manual_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* manualVideoUrlList
    manual_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* manualVideoFileList
    manual_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )


class GroupRoutePointOverflowModifyRequest(OCIRequest):
    """
    Modify a route point's overflow settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "overflow_after_timeout",
            "overflowAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* overflowAfterTimeout
    overflow_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeOverflowProcessing
    play_announcement_before_overflow_processing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )


class GroupRoutePointOverflowModifyRequest20(OCIRequest):
    """
    Modify a route point's overflow settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "action",
            "action",
            str,
            False,
            False,
            False,
        ),
        E(
            "transfer_phone_number",
            "transferPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "overflow_after_timeout",
            "overflowAfterTimeout",
            bool,
            False,
            False,
            False,
        ),
        E(
            "timeout_seconds",
            "timeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_message_selection",
            "audioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_url_list",
            "audioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "audio_file_list",
            "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "video_message_selection",
            "videoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_url_list",
            "videoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "video_file_list",
            "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* action
    action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* transferPhoneNumber
    transfer_phone_number = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* overflowAfterTimeout
    overflow_after_timeout = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeoutSeconds
    timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* playAnnouncementBeforeOverflowProcessing
    play_announcement_before_overflow_processing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioMessageSelection
    audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* audioUrlList
    audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* audioFileList
    audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* videoMessageSelection
    video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* videoUrlList
    video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* videoFileList
    video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* name
    name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_pack_authorization",
            "servicePackAuthorization",
            OCI.ServicePackAuthorization,
            True,
            False,
            False,
        ),
        E(
            "group_service_authorization",
            "groupServiceAuthorization",
            OCI.GroupServiceAuthorization,
            True,
            False,
            False,
        ),
        E(
            "user_service_authorization",
            "userServiceAuthorization",
            OCI.UserServiceAuthorization,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServicePackAuthorization: *Optional* servicePackAuthorization
    service_pack_authorization = Field(
        type=OCI.ServicePackAuthorization,
        required=False,
    )
    #: OCI.GroupServiceAuthorization: *Optional* groupServiceAuthorization
    group_service_authorization = Field(
        type=OCI.GroupServiceAuthorization,
        required=False,
    )
    #: OCI.UserServiceAuthorization: *Optional* userServiceAuthorization
    user_service_authorization = Field(
        type=OCI.UserServiceAuthorization,
        required=False,
    )


class GroupSessionAdmissionControlGroupModifyRequest(OCIRequest):
    """
    Request to modify a session admission control group for the group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_session",
            "maxSession",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_session",
            "reservedSession",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_originating_sessions",
            "reservedUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_terminating_sessions",
            "reservedUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group",
            "becomeDefaultGroup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "count_intra_sac_group_sessions",
            "countIntraSACGroupSessions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "device_list",
            "deviceList",
            OCI.ReplacementDeviceList,
            True,
            False,
            False,
        ),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxSession
    max_session = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedSession
    reserved_session = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserOriginatingSessions
    reserved_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserTerminatingSessions
    reserved_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* becomeDefaultGroup
    become_default_group = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* countIntraSACGroupSessions
    count_intra_sac_group_sessions = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementDeviceList: *Optional* deviceList
    device_list = Field(
        type=OCI.ReplacementDeviceList,
        required=False,
    )
    #: bool: *Optional* blockEmergencyAndRepairCallsDueToSACLimits
    block_emergency_and_repair_calls_due_to_sac_limits = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileTrunkGroup,
            True,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileTrunkGroup: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileTrunkGroup,
        required=True,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileTrunkGroup,
            True,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_id",
            "capacityExceededRerouteTrunkGroupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_id",
            "unreachableDestinationRerouteTrunkGroupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfileTrunkGroup: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfileTrunkGroup,
        required=True,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededRerouteTrunkGroupId
    capacity_exceeded_reroute_trunk_group_id = Field(
        type=str,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationRerouteTrunkGroupId
    unreachable_destination_reroute_trunk_group_id = Field(
        type=str,
        required=False,
    )
    #: int: *Required* unreachableDestinationTrapInitialCalls
    unreachable_destination_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* unreachableDestinationTrapOffsetCalls
    unreachable_destination_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )


class GroupTrunkGroupAddInstanceRequest14sp4(OCIRequest):
    """
    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* unreachableDestinationTrapInitialCalls
    unreachable_destination_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* unreachableDestinationTrapOffsetCalls
    unreachable_destination_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )


class GroupTrunkGroupAddInstanceRequest14sp9(OCIRequest):
    """
    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_pilot_user_calling_line_identity",
            "usePilotUserCallingLineIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_pilot_user_charge_number",
            "usePilotUserChargeNumber",
            bool,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* unreachableDestinationTrapInitialCalls
    unreachable_destination_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* unreachableDestinationTrapOffsetCalls
    unreachable_destination_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* usePilotUserCallingLineIdentity
    use_pilot_user_calling_line_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* usePilotUserChargeNumber
    use_pilot_user_charge_number = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )


class GroupTrunkGroupAddInstanceRequest15(OCIRequest):
    """
    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )


class GroupTrunkGroupAddInstanceRequest15sp2(OCIRequest):
    """
    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityPolicy
    pilot_user_calling_line_identity_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )


class GroupTrunkGroupAddInstanceRequest17(OCIRequest):
    """
    Replaced By ``GroupTrunkGroupAddInstanceRequest17sp4()``

    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityPolicy
    pilot_user_calling_line_identity_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )


class GroupTrunkGroupAddInstanceRequest17sp3(OCIRequest):
    """
    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By ``GroupTrunkGroupAddInstanceRequest17sp4()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityPolicy
    pilot_user_calling_line_identity_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=True,
    )


class GroupTrunkGroupAddInstanceRequest17sp4(OCIRequest):
    """
    Add a Trunk Group instance to a group.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupMultipleContactPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupMultipleContactPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityPolicy
    pilot_user_calling_line_identity_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupMultipleContactPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupMultipleContactPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityPolicy
    pilot_user_calling_line_identity_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupMultipleContactPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "clid_source_for_screened_calls_policy",
            "clidSourceForScreenedCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_lookup_policy",
            "userLookupPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_user_lookup_policy",
            "useSystemUserLookupPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_network_class_of_service",
            "pilotUserNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupMultipleContactPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityForExternalCallsPolicy
    pilot_user_calling_line_identity_for_external_calls_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* clidSourceForScreenedCallsPolicy
    clid_source_for_screened_calls_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCLIDSourceForScreenedCallsPolicy
    use_system_clid_source_for_screened_calls_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* userLookupPolicy
    user_lookup_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemUserLookupPolicy
    use_system_user_lookup_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityForEmergencyCallsPolicy
    pilot_user_calling_line_identity_for_emergency_calls_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* pilotUserNetworkClassOfService
    pilot_user_network_class_of_service = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupMultipleContactPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "clid_source_for_screened_calls_policy",
            "clidSourceForScreenedCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_lookup_policy",
            "userLookupPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_user_lookup_policy",
            "useSystemUserLookupPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_network_class_of_service",
            "pilotUserNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupMultipleContactPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityForExternalCallsPolicy
    pilot_user_calling_line_identity_for_external_calls_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* clidSourceForScreenedCallsPolicy
    clid_source_for_screened_calls_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCLIDSourceForScreenedCallsPolicy
    use_system_clid_source_for_screened_calls_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* userLookupPolicy
    user_lookup_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemUserLookupPolicy
    use_system_user_lookup_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityForEmergencyCallsPolicy
    pilot_user_calling_line_identity_for_emergency_calls_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* pilotUserNetworkClassOfService
    pilot_user_network_class_of_service = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user",
            "pilotUser",
            OCI.TrunkGroupMultipleContactPilotUser,
            True,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "access_device",
            "accessDevice",
            OCI.AccessDevice,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            True,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            True,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
        E(
            "hosted_user_id",
            "hostedUserId",
            str,
            False,
            False,
            False,
        ),
        E(
            "trunk_group_identity",
            "trunkGroupIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "otg_dtg_identity",
            "otgDtgIdentity",
            str,
            False,
            False,
            False,
        ),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_termination_to_dtg_identity",
            "allowTerminationToDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity",
            "includeTrunkGroupIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_dtg_identity",
            "includeDtgIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_otg_identity_for_network_calls",
            "includeOtgIdentityForNetworkCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_network_address_identity",
            "enableNetworkAddressIdentity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_calls",
            "allowUnscreenedCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_unscreened_emergency_calls",
            "allowUnscreenedEmergencyCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_charge_number_policy",
            "pilotUserChargeNumberPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_forwarding_always_action",
            "callForwardingAlwaysAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            False,
            False,
        ),
        E(
            "peering_domain",
            "peeringDomain",
            str,
            False,
            False,
            False,
        ),
        E(
            "route_to_peering_domain",
            "routeToPeeringDomain",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix_enabled",
            "prefixEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "prefix",
            "prefix",
            str,
            False,
            False,
            False,
        ),
        E(
            "stateful_rerouting_enabled",
            "statefulReroutingEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "send_continuous_options_message",
            "sendContinuousOptionsMessage",
            bool,
            False,
            True,
            False,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "failure_threshold_counter",
            "failureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "success_threshold_counter",
            "successThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_counter",
            "inviteFailureThresholdCounter",
            int,
            False,
            True,
            False,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_call_optimization_policy",
            "pilotUserCallOptimizationPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "clid_source_for_screened_calls_policy",
            "clidSourceForScreenedCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "user_lookup_policy",
            "userLookupPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_user_lookup_policy",
            "useSystemUserLookupPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "pilot_user_network_class_of_service",
            "pilotUserNetworkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_implicit_registration_set_support_policy",
            "useSystemImplicitRegistrationSetSupportPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_system_support_connected_identity_policy",
            "useSystemSupportConnectedIdentityPolicy",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_connected_identity_policy",
            "supportConnectedIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: OCI.TrunkGroupMultipleContactPilotUser: *Optional* pilotUser
    pilot_user = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: OCI.AccessDevice: *Optional* accessDevice
    access_device = Field(
        type=OCI.AccessDevice,
        required=False,
    )
    #: int: *Required* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Required* enableBursting
    enable_bursting = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* capacityExceededRerouteTrunkGroupKey
    capacity_exceeded_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=True,
    )
    #: int: *Required* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=True,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* unreachableDestinationRerouteTrunkGroupKey
    unreachable_destination_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: int: *Required* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hostedUserId
    hosted_user_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* trunkGroupIdentity
    trunk_group_identity = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* otgDtgIdentity
    otg_dtg_identity = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* allowTerminationToTrunkGroupIdentity
    allow_termination_to_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTerminationToDtgIdentity
    allow_termination_to_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentity
    include_trunk_group_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeDtgIdentity
    include_dtg_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeTrunkGroupIdentityForNetworkCalls
    include_trunk_group_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeOtgIdentityForNetworkCalls
    include_otg_identity_for_network_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableNetworkAddressIdentity
    enable_network_address_identity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedCalls
    allow_unscreened_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowUnscreenedEmergencyCalls
    allow_unscreened_emergency_calls = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityForExternalCallsPolicy
    pilot_user_calling_line_identity_for_external_calls_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* pilotUserChargeNumberPolicy
    pilot_user_charge_number_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callForwardingAlwaysAction
    call_forwarding_always_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callForwardingAlwaysForwardAddress
    call_forwarding_always_forward_address = Field(
        type=str,
        required=False,
    )
    #: OCI.TrunkGroupKey: *Optional* callForwardingAlwaysRerouteTrunkGroupKey
    call_forwarding_always_reroute_trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=False,
    )
    #: str: *Optional* peeringDomain
    peering_domain = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* routeToPeeringDomain
    route_to_peering_domain = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* prefixEnabled
    prefix_enabled = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* prefix
    prefix = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* statefulReroutingEnabled
    stateful_rerouting_enabled = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* sendContinuousOptionsMessage
    send_continuous_options_message = Field(
        type=bool,
        required=True,
    )
    #: int: *Required* continuousOptionsSendingIntervalSeconds
    continuous_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureOptionsSendingIntervalSeconds
    failure_options_sending_interval_seconds = Field(
        type=int,
        required=True,
    )
    #: int: *Required* failureThresholdCounter
    failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* successThresholdCounter
    success_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdCounter
    invite_failure_threshold_counter = Field(
        type=int,
        required=True,
    )
    #: int: *Required* inviteFailureThresholdWindowSeconds
    invite_failure_threshold_window_seconds = Field(
        type=int,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineAssertedIdentityPolicy
    pilot_user_calling_line_asserted_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCallingLineAssertedIdentityPolicy
    use_system_calling_line_asserted_identity_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallOptimizationPolicy
    pilot_user_call_optimization_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Required* clidSourceForScreenedCallsPolicy
    clid_source_for_screened_calls_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemCLIDSourceForScreenedCallsPolicy
    use_system_clid_source_for_screened_calls_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* userLookupPolicy
    user_lookup_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemUserLookupPolicy
    use_system_user_lookup_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* pilotUserCallingLineIdentityForEmergencyCallsPolicy
    pilot_user_calling_line_identity_for_emergency_calls_policy = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* pilotUserNetworkClassOfService
    pilot_user_network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Required* implicitRegistrationSetSupportPolicy
    implicit_registration_set_support_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemImplicitRegistrationSetSupportPolicy
    use_system_implicit_registration_set_support_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* sipIdentityForPilotAndProxyTrunkModesPolicy
    sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy
    use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useSystemSupportConnectedIdentityPolicy
    use_system_support_connected_identity_policy = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* supportConnectedIdentityPolicy
    support_connected_identity_policy = Field(
        type=str,
        required=True,
    )


class GroupTrunkGroupGetAvailableHostedUserListRequest(OCIRequest):
    """
    Get a list of hosted users that can be assigned to a Trunk Group.
    The response is either ``GroupTrunkGroupGetAvailableHostedUserListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class GroupTrunkGroupGetInstanceUserListRequest(OCIRequest):
    """
    Get a list of user's on a Trunk Group Instance.
    The response is either a ``GroupTrunkGroupGetInstanceUserListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )


class GroupTrunkGroupGetInstanceUserListRequest14sp4(OCIRequest):
    """
    Get a list of user's on a Trunk Group Instance.
    The response is either a ``GroupTrunkGroupGetInstanceUserListResponse14sp4()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "trunk_group_key",
            "trunkGroupKey",
            OCI.TrunkGroupKey,
            True,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: OCI.TrunkGroupKey: *Required* trunkGroupKey
    trunk_group_key = Field(
        type=OCI.TrunkGroupKey,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfileTrunkGroup,
            True,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify,
            True,
            False,
            False,
        ),
        E(
            "max_active_calls",
            "maxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_incoming_calls",
            "maxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_outgoing_calls",
            "maxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_bursting",
            "enableBursting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_active_calls",
            "burstingMaxActiveCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_incoming_calls",
            "burstingMaxIncomingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "bursting_max_outgoing_calls",
            "burstingMaxOutgoingCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_action",
            "capacityExceededAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_forward_address",
            "capacityExceededForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_reroute_trunk_group_id",
            "capacityExceededRerouteTrunkGroupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_initial_calls",
            "capacityExceededTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "capacity_exceeded_trap_offset_calls",
            "capacityExceededTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_action",
            "unreachableDestinationAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_id",
            "unreachableDestinationRerouteTrunkGroupId",
            str,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls",
            int,
            False,
            False,
            False,
        ),
        E(
            "invitation_timeout",
            "invitationTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "require_authentication",
            "requireAuthentication",
            bool,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_user_name",
            "sipAuthenticationUserName",
            str,
            False,
            False,
            False,
        ),
        E(
            "sip_authentication_password",
            "sipAuthenticationPassword",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfileTrunkGroup: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfileTrunkGroup,
        required=False,
    )
    #: OCI.AccessDeviceEndpointModify: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointModify,
        required=False,
    )
    #: int: *Optional* maxActiveCalls
    max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxIncomingCalls
    max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxOutgoingCalls
    max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableBursting
    enable_bursting = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* burstingMaxActiveCalls
    bursting_max_active_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxIncomingCalls
    bursting_max_incoming_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* burstingMaxOutgoingCalls
    bursting_max_outgoing_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* capacityExceededAction
    capacity_exceeded_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededForwardAddress
    capacity_exceeded_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* capacityExceededRerouteTrunkGroupId
    capacity_exceeded_reroute_trunk_group_id = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapInitialCalls
    capacity_exceeded_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* capacityExceededTrapOffsetCalls
    capacity_exceeded_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* unreachableDestinationAction
    unreachable_destination_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationForwardAddress
    unreachable_destination_forward_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* unreachableDestinationRerouteTrunkGroupId
    unreachable_destination_reroute_trunk_group_id = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* unreachableDestinationTrapInitialCalls
    unreachable_destination_trap_initial_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* unreachableDestinationTrapOffsetCalls
    unreachable_destination_trap_offset_calls = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* invitationTimeout
    invitation_timeout = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* requireAuthentication
    require_authentication = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* sipAuthenticationUserName
    sip_authentication_user_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* sipAuthenticationPassword
    sip_authentication_password = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "virtual_on_net_user",
            "virtualOnNetUser",
            OCI.VirtualOnNetUser,
            True,
            False,
            False,
        ),
        E(
            "virtual_on_net_user_range",
            "virtualOnNetUserRange",
            OCI.VirtualOnNetUserRange,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.VirtualOnNetUser: *Optional* virtualOnNetUser
    virtual_on_net_user = Field(
        type=OCI.VirtualOnNetUser,
        required=False,
    )
    #: OCI.VirtualOnNetUserRange: *Optional* virtualOnNetUserRange
    virtual_on_net_user_range = Field(
        type=OCI.VirtualOnNetUserRange,
        required=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalRequest(OCIRequest):
    """
    Request to modify the group voice portal information for a voice messaging group.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_extended_scope",
            "enableExtendedScope",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_identification_by_phone_number_or_voice_mail_aliases_on_login",
            "allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_voice_portal_wizard",
            "useVoicePortalWizard",
            bool,
            False,
            False,
            False,
        ),
        E(
            "voice_portal_external_routing_scope",
            "voicePortalExternalRoutingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "use_external_routing",
            "useExternalRouting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "external_routing_address",
            "externalRoutingAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "home_zone_name",
            "homeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableExtendedScope
    enable_extended_scope = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin
    allow_identification_by_phone_number_or_voice_mail_aliases_on_login = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useVoicePortalWizard
    use_voice_portal_wizard = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* voicePortalExternalRoutingScope
    voice_portal_external_routing_scope = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* useExternalRouting
    use_external_routing = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* externalRoutingAddress
    external_routing_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* homeZoneName
    home_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceEndpointModify: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointModify,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "device_name",
            "deviceName",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_endpoint_type",
            "searchCriteriaExactEndpointType",
            OCI.SearchCriteriaExactEndpointType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_type",
            "searchCriteriaExactUserType",
            OCI.SearchCriteriaExactUserType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_port_number",
            "searchCriteriaExactPortNumber",
            OCI.SearchCriteriaExactPortNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_access_device_endpoint_private_identity",
            "searchCriteriaAccessDeviceEndpointPrivateIdentity",
            OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* deviceName
    device_name = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactEndpointType: *Optional* searchCriteriaExactEndpointType
    search_criteria_exact_endpoint_type = Field(
        type=OCI.SearchCriteriaExactEndpointType,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserType: *Optional* searchCriteriaExactUserType
    search_criteria_exact_user_type = Field(
        type=OCI.SearchCriteriaExactUserType,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactPortNumber: *Optional* searchCriteriaExactPortNumber
    search_criteria_exact_port_number = Field(
        type=OCI.SearchCriteriaExactPortNumber,
        required=False,
    )
    #: OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity: *Optional*
    #: searchCriteriaAccessDeviceEndpointPrivateIdentity
    search_criteria_access_device_endpoint_private_identity = Field(
        type=OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.ServiceProviderReplacementCommunicationBarringHierarchicalOriginatingRuleList,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.ServiceProviderReplacementCommunicationBarringHierarchicalRedirectingRuleList,
            True,
            False,
            False,
        ),
        E(
            "call_me_now_default_action",
            "callMeNowDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_default_call_timeout",
            "callMeNowDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_rule",
            "callMeNowRule",
            OCI.ServiceProviderReplacementCommunicationBarringHierarchicalCallMeNowRuleList,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.ReplacementCommunicationBarringIncomingRuleList19sp1,
            True,
            False,
            False,
        ),
        E(
            "become_default",
            "becomeDefault",
            bool,
            False,
            False,
            False,
        ),
        E(
            "apply_to_attended_call_transfers",
            "applyToAttendedCallTransfers",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderReplacementCommunicationBarringHierarchicalOriginatingRuleList:
    #: *Optional* originatingRule
    originating_rule = Field(
        type=OCI.ServiceProviderReplacementCommunicationBarringHierarchicalOriginatingRuleList,
        required=False,
    )
    #: str: *Optional* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderReplacementCommunicationBarringHierarchicalRedirectingRuleList:
    #: *Optional* redirectingRule
    redirecting_rule = Field(
        type=OCI.ServiceProviderReplacementCommunicationBarringHierarchicalRedirectingRuleList,
        required=False,
    )
    #: str: *Optional* callMeNowDefaultAction
    call_me_now_default_action = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* callMeNowDefaultCallTimeout
    call_me_now_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ServiceProviderReplacementCommunicationBarringHierarchicalCallMeNowRuleList:
    #: *Optional* callMeNowRule
    call_me_now_rule = Field(
        type=OCI.ServiceProviderReplacementCommunicationBarringHierarchicalCallMeNowRuleList,
        required=False,
    )
    #: str: *Optional* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringIncomingRuleList19sp1: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.ReplacementCommunicationBarringIncomingRuleList19sp1,
        required=False,
    )
    #: bool: *Optional* becomeDefault
    become_default = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* applyToAttendedCallTransfers
    apply_to_attended_call_transfers = Field(
        type=bool,
        required=False,
    )


class ServiceProviderEndpointGetListRequest(OCIRequest):
    """
    Request to search endpoints in the service provider/enterprise.
    The response is either ``ServiceProviderEndpointGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_user_part",
            "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_line_port_domain",
            "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_type",
            "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_name",
            "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_mac_address",
            "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_device_net_address",
            "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* searchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortUserPart: *Optional* searchCriteriaLinePortUserPart
    search_criteria_line_port_user_part = Field(
        type=OCI.SearchCriteriaLinePortUserPart,
        required=False,
    )
    #: OCI.SearchCriteriaLinePortDomain: *Optional* searchCriteriaLinePortDomain
    search_criteria_line_port_domain = Field(
        type=OCI.SearchCriteriaLinePortDomain,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceType: *Optional* searchCriteriaDeviceType
    search_criteria_device_type = Field(
        type=OCI.SearchCriteriaDeviceType,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceName: *Optional* searchCriteriaDeviceName
    search_criteria_device_name = Field(
        type=OCI.SearchCriteriaDeviceName,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceMACAddress: *Optional* searchCriteriaDeviceMACAddress
    search_criteria_device_mac_address = Field(
        type=OCI.SearchCriteriaDeviceMACAddress,
        required=False,
    )
    #: OCI.SearchCriteriaDeviceNetAddress: *Optional* searchCriteriaDeviceNetAddress
    search_criteria_device_net_address = Field(
        type=OCI.SearchCriteriaDeviceNetAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateAddRequest(OCIRequest):
    """
    Create a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            True,
            False,
        ),
        E(
            "template_body",
            "templateBody",
            OCI.MWIDeliveryToMobileEndpointTemplateBody,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnabled
    is_enabled = Field(
        type=bool,
        required=True,
    )
    #: OCI.MWIDeliveryToMobileEndpointTemplateBody: *Required* templateBody
    template_body = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody,
        required=True,
    )


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateModifyRequest(OCIRequest):
    """
    Modify a MWI Delivery to Mobile Endpoint Custom Template.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enabled",
            "isEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "template_body",
            "templateBody",
            OCI.MWIDeliveryToMobileEndpointTemplateBody,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* language
    language = Field(
        type=str,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isEnabled
    is_enabled = Field(
        type=bool,
        required=False,
    )
    #: OCI.MWIDeliveryToMobileEndpointTemplateBody: *Optional* templateBody
    template_body = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_service_authorization",
            "groupServiceAuthorization",
            OCI.GroupServiceAuthorization,
            True,
            False,
            False,
        ),
        E(
            "user_service_authorization",
            "userServiceAuthorization",
            OCI.UserServiceAuthorization,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: OCI.GroupServiceAuthorization: *Optional* groupServiceAuthorization
    group_service_authorization = Field(
        type=OCI.GroupServiceAuthorization,
        required=False,
    )
    #: OCI.UserServiceAuthorization: *Optional* userServiceAuthorization
    user_service_authorization = Field(
        type=OCI.UserServiceAuthorization,
        required=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
    """

    _ELEMENTS = (
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_action",
            "originatingDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_treatment_id",
            "originatingDefaultTreatmentId",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_transfer_number",
            "originatingDefaultTransferNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "originating_default_call_timeout",
            "originatingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "originating_rule",
            "originatingRule",
            OCI.ReplacementCommunicationBarringOriginatingRuleList,
            True,
            False,
            False,
        ),
        E(
            "redirecting_default_action",
            "redirectingDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "redirecting_default_call_timeout",
            "redirectingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "redirecting_rule",
            "redirectingRule",
            OCI.ReplacementCommunicationBarringRedirectingRuleList,
            True,
            False,
            False,
        ),
        E(
            "incoming_default_action",
            "incomingDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "incoming_default_call_timeout",
            "incomingDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "incoming_rule",
            "incomingRule",
            OCI.ReplacementCommunicationBarringIncomingRuleList19sp1,
            True,
            False,
            False,
        ),
        E(
            "call_me_now_default_action",
            "callMeNowDefaultAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_default_call_timeout",
            "callMeNowDefaultCallTimeout",
            int,
            False,
            False,
            False,
        ),
        E(
            "call_me_now_rule",
            "callMeNowRule",
            OCI.ReplacementCommunicationBarringCallMeNowRuleList,
            True,
            False,
            False,
        ),
        E(
            "apply_to_attended_call_transfers",
            "applyToAttendedCallTransfers",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultAction
    originating_default_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTreatmentId
    originating_default_treatment_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* originatingDefaultTransferNumber
    originating_default_transfer_number = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* originatingDefaultCallTimeout
    originating_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringOriginatingRuleList: *Optional* originatingRule
    originating_rule = Field(
        type=OCI.ReplacementCommunicationBarringOriginatingRuleList,
        required=False,
    )
    #: str: *Optional* redirectingDefaultAction
    redirecting_default_action = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* redirectingDefaultCallTimeout
    redirecting_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringRedirectingRuleList: *Optional* redirectingRule
    redirecting_rule = Field(
        type=OCI.ReplacementCommunicationBarringRedirectingRuleList,
        required=False,
    )
    #: str: *Optional* incomingDefaultAction
    incoming_default_action = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* incomingDefaultCallTimeout
    incoming_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringIncomingRuleList19sp1: *Optional* incomingRule
    incoming_rule = Field(
        type=OCI.ReplacementCommunicationBarringIncomingRuleList19sp1,
        required=False,
    )
    #: str: *Optional* callMeNowDefaultAction
    call_me_now_default_action = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* callMeNowDefaultCallTimeout
    call_me_now_default_call_timeout = Field(
        type=int,
        required=False,
    )
    #: OCI.ReplacementCommunicationBarringCallMeNowRuleList: *Optional* callMeNowRule
    call_me_now_rule = Field(
        type=OCI.ReplacementCommunicationBarringCallMeNowRuleList,
        required=False,
    )
    #: bool: *Optional* applyToAttendedCallTransfers
    apply_to_attended_call_transfers = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "parameters",
            "parameters",
            OCI.VerifyTranslationAndRoutingParameters,
            True,
            True,
            False,
        ),
        E(
            "sip_message",
            "sipMessage",
            str,
            False,
            True,
            False,
        ),
    )
    #: OCI.VerifyTranslationAndRoutingParameters: *Required* parameters
    parameters = Field(
        type=OCI.VerifyTranslationAndRoutingParameters,
        required=True,
    )
    #: str: *Required* sipMessage
    sip_message = Field(
        type=str,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            True,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "alias",
            "alias",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "trunk_group_device_endpoint",
            "trunkGroupDeviceEndpoint",
            OCI.TrunkGroupDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* lastName
    last_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* firstName
    first_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alias
    alias = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=False,
    )
    #: OCI.TrunkGroupDeviceEndpointAdd: *Optional* trunkGroupDeviceEndpoint
    trunk_group_device_endpoint = Field(
        type=OCI.TrunkGroupDeviceEndpointAdd,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            True,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "alias",
            "alias",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "trunk_addressing",
            "trunkAddressing",
            OCI.TrunkAddressingAdd,
            True,
            False,
            False,
        ),
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
        E(
            "office_zone_name",
            "officeZoneName",
            str,
            False,
            False,
            False,
        ),
        E(
            "primary_zone_name",
            "primaryZoneName",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* lastName
    last_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* firstName
    first_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alias
    alias = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=False,
    )
    #: OCI.TrunkAddressingAdd: *Optional* trunkAddressing
    trunk_addressing = Field(
        type=OCI.TrunkAddressingAdd,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* officeZoneName
    office_zone_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* primaryZoneName
    primary_zone_name = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "last_name",
            "lastName",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_name",
            "firstName",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_last_name",
            "callingLineIdLastName",
            str,
            False,
            True,
            False,
        ),
        E(
            "calling_line_id_first_name",
            "callingLineIdFirstName",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_name",
            "nameDialingName",
            OCI.NameDialingName,
            True,
            False,
            False,
        ),
        E(
            "hiragana_last_name",
            "hiraganaLastName",
            str,
            False,
            False,
            False,
        ),
        E(
            "hiragana_first_name",
            "hiraganaFirstName",
            str,
            False,
            False,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension",
            "extension",
            str,
            False,
            False,
            False,
        ),
        E(
            "calling_line_id_phone_number",
            "callingLineIdPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "password",
            "password",
            str,
            False,
            False,
            False,
        ),
        E(
            "department",
            "department",
            OCI.DepartmentKey,
            True,
            False,
            False,
        ),
        E(
            "language",
            "language",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_zone",
            "timeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "alias",
            "alias",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointAdd,
            True,
            False,
            False,
        ),
        E(
            "trunk_addressing",
            "trunkAddressing",
            OCI.TrunkAddressingMultipleContactAdd,
            True,
            False,
            False,
        ),
        E(
            "title",
            "title",
            str,
            False,
            False,
            False,
        ),
        E(
            "pager_phone_number",
            "pagerPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "mobile_phone_number",
            "mobilePhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            False,
            False,
        ),
        E(
            "yahoo_id",
            "yahooId",
            str,
            False,
            False,
            False,
        ),
        E(
            "address_location",
            "addressLocation",
            str,
            False,
            False,
            False,
        ),
        E(
            "address",
            "address",
            OCI.StreetAddress,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* lastName
    last_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* firstName
    first_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdLastName
    calling_line_id_last_name = Field(
        type=str,
        required=True,
    )
    #: str: *Required* callingLineIdFirstName
    calling_line_id_first_name = Field(
        type=str,
        required=True,
    )
    #: OCI.NameDialingName: *Optional* nameDialingName
    name_dialing_name = Field(
        type=OCI.NameDialingName,
        required=False,
    )
    #: str: *Optional* hiraganaLastName
    hiragana_last_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* hiraganaFirstName
    hiragana_first_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* phoneNumber
    phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extension
    extension = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* callingLineIdPhoneNumber
    calling_line_id_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* password
    password = Field(
        type=str,
        required=False,
    )
    #: OCI.DepartmentKey: *Optional* department
    department = Field(
        type=OCI.DepartmentKey,
        required=False,
    )
    #: str: *Optional* language
    language = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* timeZone
    time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* alias
    alias = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceMultipleContactEndpointAdd: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceMultipleContactEndpointAdd,
        required=False,
    )
    #: OCI.TrunkAddressingMultipleContactAdd: *Optional* trunkAddressing
    trunk_addressing = Field(
        type=OCI.TrunkAddressingMultipleContactAdd,
        required=False,
    )
    #: str: *Optional* title
    title = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* pagerPhoneNumber
    pager_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* mobilePhoneNumber
    mobile_phone_number = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* emailAddress
    email_address = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* yahooId
    yahoo_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* addressLocation
    address_location = Field(
        type=str,
        required=False,
    )
    #: OCI.StreetAddress: *Optional* address
    address = Field(
        type=OCI.StreetAddress,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class UserAttendantConsoleGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the Attendant Console service.
    The response is either ``UserAttendantConsoleGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "phone_number",
            "phoneNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* phoneNumber
    phone_number = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_number",
            "mobileNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_primary",
            "isPrimary",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_alerting",
            "enableAlerting",
            bool,
            False,
            True,
            False,
        ),
        E(
            "alert_agent_calls",
            "alertAgentCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "alert_click_to_dial_calls",
            "alertClickToDialCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "alert_group_paging_calls",
            "alertGroupPagingCalls",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_mobility_calling_line_id",
            "useMobilityCallingLineID",
            bool,
            False,
            True,
            False,
        ),
        E(
            "enable_diversion_inhibitor",
            "enableDiversionInhibitor",
            bool,
            False,
            True,
            False,
        ),
        E(
            "require_answer_confirmation",
            "requireAnswerConfirmation",
            bool,
            False,
            True,
            False,
        ),
        E(
            "broadworks_call_control",
            "broadworksCallControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            True,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            True,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            True,
            False,
        ),
        E(
            "devices_to_ring",
            "devicesToRing",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_shared_call_appearance",
            "includeSharedCallAppearance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_broadworks_anywhere",
            "includeBroadworksAnywhere",
            bool,
            False,
            True,
            False,
        ),
        E(
            "include_executive_assistant",
            "includeExecutiveAssistant",
            bool,
            False,
            True,
            False,
        ),
        E(
            "mobile_number_alerted",
            "mobileNumberAlerted",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable_call_anchoring",
            "enableCallAnchoring",
            bool,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.ScheduleGlobalKey,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.ScheduleGlobalKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNumber
    mobile_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isPrimary
    is_primary = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableAlerting
    enable_alerting = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* alertAgentCalls
    alert_agent_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* alertClickToDialCalls
    alert_click_to_dial_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* alertGroupPagingCalls
    alert_group_paging_calls = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useMobilityCallingLineID
    use_mobility_calling_line_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* enableDiversionInhibitor
    enable_diversion_inhibitor = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requireAnswerConfirmation
    require_answer_confirmation = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* broadworksCallControl
    broadworks_call_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* devicesToRing
    devices_to_ring = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeSharedCallAppearance
    include_shared_call_appearance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeBroadworksAnywhere
    include_broadworks_anywhere = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* includeExecutiveAssistant
    include_executive_assistant = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* mobileNumberAlerted
    mobile_number_alerted = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* enableCallAnchoring
    enable_call_anchoring = Field(
        type=bool,
        required=True,
    )
    #: OCI.ScheduleGlobalKey: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.ScheduleGlobalKey,
        required=False,
    )
    #: OCI.ScheduleGlobalKey: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.ScheduleGlobalKey,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "mobile_number",
            "mobileNumber",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_primary",
            "isPrimary",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_alerting",
            "enableAlerting",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_agent_calls",
            "alertAgentCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_click_to_dial_calls",
            "alertClickToDialCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "alert_group_paging_calls",
            "alertGroupPagingCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_mobility_calling_line_id",
            "useMobilityCallingLineID",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_diversion_inhibitor",
            "enableDiversionInhibitor",
            bool,
            False,
            False,
            False,
        ),
        E(
            "require_answer_confirmation",
            "requireAnswerConfirmation",
            bool,
            False,
            False,
            False,
        ),
        E(
            "broadworks_call_control",
            "broadworksCallControl",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_setting_level",
            "useSettingLevel",
            str,
            False,
            False,
            False,
        ),
        E(
            "deny_call_originations",
            "denyCallOriginations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "deny_call_terminations",
            "denyCallTerminations",
            bool,
            False,
            False,
            False,
        ),
        E(
            "devices_to_ring",
            "devicesToRing",
            str,
            False,
            False,
            False,
        ),
        E(
            "include_shared_call_appearance",
            "includeSharedCallAppearance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_broadworks_anywhere",
            "includeBroadworksAnywhere",
            bool,
            False,
            False,
            False,
        ),
        E(
            "include_executive_assistant",
            "includeExecutiveAssistant",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mobile_numbers_alerted",
            "mobileNumbersAlerted",
            OCI.BroadWorksMobilityAlertingMobileNumberReplacementList,
            True,
            False,
            False,
        ),
        E(
            "enable_call_anchoring",
            "enableCallAnchoring",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.ScheduleGlobalKey,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.ScheduleGlobalKey,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* mobileNumber
    mobile_number = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isPrimary
    is_primary = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAlerting
    enable_alerting = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertAgentCalls
    alert_agent_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertClickToDialCalls
    alert_click_to_dial_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* alertGroupPagingCalls
    alert_group_paging_calls = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useMobilityCallingLineID
    use_mobility_calling_line_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableDiversionInhibitor
    enable_diversion_inhibitor = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requireAnswerConfirmation
    require_answer_confirmation = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* broadworksCallControl
    broadworks_call_control = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* useSettingLevel
    use_setting_level = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* denyCallOriginations
    deny_call_originations = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* denyCallTerminations
    deny_call_terminations = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* devicesToRing
    devices_to_ring = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* includeSharedCallAppearance
    include_shared_call_appearance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeBroadworksAnywhere
    include_broadworks_anywhere = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* includeExecutiveAssistant
    include_executive_assistant = Field(
        type=bool,
        required=False,
    )
    #: OCI.BroadWorksMobilityAlertingMobileNumberReplacementList: *Optional*
    #: mobileNumbersAlerted
    mobile_numbers_alerted = Field(
        type=OCI.BroadWorksMobilityAlertingMobileNumberReplacementList,
        required=False,
    )
    #: bool: *Optional* enableCallAnchoring
    enable_call_anchoring = Field(
        type=bool,
        required=False,
    )
    #: OCI.ScheduleGlobalKey: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.ScheduleGlobalKey,
        required=False,
    )
    #: OCI.ScheduleGlobalKey: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.ScheduleGlobalKey,
        required=False,
    )


class UserBroadWorksReceptionistEnterpriseGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for BroadWorks Receptionist - Enterprise monitoring.
    The response is either ``UserBroadWorksReceptionistEnterpriseGetAvailableUserListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class UserBroadWorksReceptionistOfficeGetAvailableUserListRequest(OCIRequest):
    """
    Get the Receptionist Office available user list.
    The response is either ``UserBroadWorksReceptionistOfficeGetAvailableUserListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class UserBroadWorksReceptionistSmallBusinessGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the Receptionist Small Business service.
    The response is either ``UserBroadWorksReceptionistSmallBusinessGetAvailableUserListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class UserBusyLampFieldGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the busy lamp field service.
    The response is either ``UserBusyLampFieldGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "forward_to_number_selection",
            "forwardToNumberSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "forward_to_phone_number",
            "forwardToPhoneNumber",
            str,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* forwardToNumberSelection
    forward_to_number_selection = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* forwardToPhoneNumber
    forward_to_phone_number = Field(
        type=str,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=False,
    )


class UserCallMeNowModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's call me now service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "reject_call",
            "rejectCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "to_dn_criteria",
            "toDnCriteria",
            OCI.CallMeNowToDnCriteriaModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* rejectCall
    reject_call = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallMeNowToDnCriteriaModify: *Optional* toDnCriteria
    to_dn_criteria = Field(
        type=OCI.CallMeNowToDnCriteriaModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            False,
            False,
        ),
        E(
            "available_in_office",
            "availableInOffice",
            OCI.CommPilotExpressAvailableInOfficeModify,
            True,
            False,
            False,
        ),
        E(
            "available_out_of_office",
            "availableOutOfOffice",
            OCI.CommPilotExpressAvailableOutOfOfficeModify,
            True,
            False,
            False,
        ),
        E(
            "busy",
            "busy",
            OCI.CommPilotExpressBusyModify,
            True,
            False,
            False,
        ),
        E(
            "unavailable",
            "unavailable",
            OCI.CommPilotExpressUnavailableModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* profile
    profile = Field(
        type=str,
        required=False,
    )
    #: OCI.CommPilotExpressAvailableInOfficeModify: *Optional* availableInOffice
    available_in_office = Field(
        type=OCI.CommPilotExpressAvailableInOfficeModify,
        required=False,
    )
    #: OCI.CommPilotExpressAvailableOutOfOfficeModify: *Optional* availableOutOfOffice
    available_out_of_office = Field(
        type=OCI.CommPilotExpressAvailableOutOfOfficeModify,
        required=False,
    )
    #: OCI.CommPilotExpressBusyModify: *Optional* busy
    busy = Field(
        type=OCI.CommPilotExpressBusyModify,
        required=False,
    )
    #: OCI.CommPilotExpressUnavailableModify: *Optional* unavailable
    unavailable = Field(
        type=OCI.CommPilotExpressUnavailableModify,
        required=False,
    )


class UserCustomRingbackUserAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's custom ringback service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_audio_selection",
            "callWaitingAudioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_audio_file",
            "callWaitingAudioFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_video_selection",
            "callWaitingVideoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_video_file",
            "callWaitingVideoFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: str: *Required* audioSelection
    audio_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.ExtendedFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Required* videoSelection
    video_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.ExtendedFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingAudioSelection
    call_waiting_audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* callWaitingAudioFile
    call_waiting_audio_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingVideoSelection
    call_waiting_video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* callWaitingVideoFile
    call_waiting_video_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )


class UserCustomRingbackUserAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's custom ringback
    service.
    The response is either a ``SuccessResponse()`` or
    an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_audio_selection",
            "callWaitingAudioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_audio_file",
            "callWaitingAudioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_video_selection",
            "callWaitingVideoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_video_file",
            "callWaitingVideoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: str: *Required* audioSelection
    audio_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Required* videoSelection
    video_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingAudioSelection
    call_waiting_audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* callWaitingAudioFile
    call_waiting_audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingVideoSelection
    call_waiting_video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* callWaitingVideoFile
    call_waiting_video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDn,
            True,
            True,
            False,
        ),
        E(
            "call_to_number",
            "callToNumber",
            OCI.CallToNumber,
            True,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_audio_selection",
            "callWaitingAudioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_audio_file",
            "callWaitingAudioFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_video_selection",
            "callWaitingVideoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_video_file",
            "callWaitingVideoFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Required* blacklisted
    blacklisted = Field(
        type=bool,
        required=True,
    )
    #: OCI.CriteriaFromDn: *Required* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDn,
        required=True,
    )
    #: OCI.CallToNumber: *Optional* callToNumber
    call_to_number = Field(
        type=OCI.CallToNumber,
        required=False,
    )
    #: str: *Required* audioSelection
    audio_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Required* videoSelection
    video_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Optional* callWaitingAudioSelection
    call_waiting_audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* callWaitingAudioFile
    call_waiting_audio_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Optional* callWaitingVideoSelection
    call_waiting_video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* callWaitingVideoFile
    call_waiting_video_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_audio_selection",
            "callWaitingAudioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_audio_file",
            "callWaitingAudioFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_video_selection",
            "callWaitingVideoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_video_file",
            "callWaitingVideoFile",
            OCI.ExtendedFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingAudioSelection
    call_waiting_audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* callWaitingAudioFile
    call_waiting_audio_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingVideoSelection
    call_waiting_video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedFileResource: *Optional* callWaitingVideoFile
    call_waiting_video_file = Field(
        type=OCI.ExtendedFileResource,
        required=False,
    )


class UserCustomRingbackUserModifyCriteriaRequest16(OCIRequest):
    """
    Modify a criteria for the user's custom ringback
    service.
    The response is either a ``SuccessResponse()``
    or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_audio_selection",
            "callWaitingAudioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_audio_file",
            "callWaitingAudioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_video_selection",
            "callWaitingVideoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_video_file",
            "callWaitingVideoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingAudioSelection
    call_waiting_audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* callWaitingAudioFile
    call_waiting_audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* callWaitingVideoSelection
    call_waiting_video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* callWaitingVideoFile
    call_waiting_video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_audio_selection",
            "callWaitingAudioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_audio_file",
            "callWaitingAudioFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "call_waiting_video_selection",
            "callWaitingVideoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "call_waiting_video_file",
            "callWaitingVideoFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Optional* callWaitingAudioSelection
    call_waiting_audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* callWaitingAudioFile
    call_waiting_audio_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Optional* callWaitingVideoSelection
    call_waiting_video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* callWaitingVideoFile
    call_waiting_video_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.ResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.ResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_log_type",
            "callLogType",
            str,
            False,
            False,
            False,
        ),
        E(
            "date_time_range",
            "dateTimeRange",
            OCI.EnhancedCallLogsTimeRange,
            True,
            True,
            False,
        ),
        E(
            "number_filter",
            "numberFilter",
            OCI.EnhancedCallLogsNumberFilter,
            True,
            False,
            False,
        ),
        E(
            "redirected_number_filter",
            "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter21,
            True,
            False,
            False,
        ),
        E(
            "account_authorization_code_filter",
            "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "call_authorization_code_filter",
            "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
            True,
            False,
            False,
        ),
        E(
            "subscriber_type",
            "subscriberType",
            str,
            False,
            False,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* callLogType
    call_log_type = Field(
        type=str,
        required=False,
    )
    #: OCI.EnhancedCallLogsTimeRange: *Required* dateTimeRange
    date_time_range = Field(
        type=OCI.EnhancedCallLogsTimeRange,
        required=True,
    )
    #: OCI.EnhancedCallLogsNumberFilter: *Optional* numberFilter
    number_filter = Field(
        type=OCI.EnhancedCallLogsNumberFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsRedirectedNumberFilter21: *Optional* redirectedNumberFilter
    redirected_number_filter = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter21,
        required=False,
    )
    #: OCI.EnhancedCallLogsAccountAuthorizationCodeFilter: *Optional*
    #: accountAuthorizationCodeFilter
    account_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter,
        required=False,
    )
    #: OCI.EnhancedCallLogsCallAuthorizationCodeFilter: *Optional*
    #: callAuthorizationCodeFilter
    call_authorization_code_filter = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter,
        required=False,
    )
    #: str: *Optional* subscriberType
    subscriber_type = Field(
        type=str,
        required=False,
    )
    #: OCI.ResponsePagingControl: *Optional* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "filter",
            "filter",
            bool,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.ExecutiveCallFilteringCriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* filter
    filter = Field(
        type=bool,
        required=False,
    )
    #: OCI.ExecutiveCallFilteringCriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.ExecutiveCallFilteringCriteriaFromDnModify,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "enable_association_limit",
            "enableAssociationLimit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "association_limit_hours",
            "associationLimitHours",
            int,
            False,
            False,
            False,
        ),
        E(
            "unlock_phone_pin_code",
            "unlockPhonePINCode",
            str,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointModify,
            True,
            False,
            False,
        ),
        E(
            "host_user_id",
            "hostUserId",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* enableAssociationLimit
    enable_association_limit = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* associationLimitHours
    association_limit_hours = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* unlockPhonePINCode
    unlock_phone_pin_code = Field(
        type=str,
        required=False,
    )
    #: OCI.AccessDeviceMultipleContactEndpointModify: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceMultipleContactEndpointModify,
        required=False,
    )
    #: str: *Optional* hostUserId
    host_user_id = Field(
        type=str,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "GroupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_in_trunk_group",
            "searchCriteriaExactUserInTrunkGroup",
            OCI.SearchCriteriaExactUserInTrunkGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* GroupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserInTrunkGroup: *Optional*
    #: searchCriteriaExactUserInTrunkGroup
    search_criteria_exact_user_in_trunk_group = Field(
        type=OCI.SearchCriteriaExactUserInTrunkGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_in_trunk_group",
            "searchCriteriaExactUserInTrunkGroup",
            OCI.SearchCriteriaExactUserInTrunkGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserInTrunkGroup: *Optional*
    #: searchCriteriaExactUserInTrunkGroup
    search_criteria_exact_user_in_trunk_group = Field(
        type=OCI.SearchCriteriaExactUserInTrunkGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_group_id",
            "SearchCriteriaGroupId",
            OCI.SearchCriteriaGroupId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_service_type",
            "SearchCriteriaExactServiceType",
            OCI.SearchCriteriaExactServiceType,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaGroupId: *Optional* SearchCriteriaGroupId
    search_criteria_group_id = Field(
        type=OCI.SearchCriteriaGroupId,
        required=False,
    )
    #: OCI.SearchCriteriaExactServiceType: *Optional* SearchCriteriaExactServiceType
    search_criteria_exact_service_type = Field(
        type=OCI.SearchCriteriaExactServiceType,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )


class UserHotelingGuestGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as Hoteling Guests.
    The response is either ``UserHotelingGuestGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )


class UserIncomingCallingPlanModifyRequest(OCIRequest):
    """
    Change the user's incoming calling plan settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.IncomingCallingPlanPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.IncomingCallingPlanPermissionsModify: *Optional* userPermissions
    user_permissions = Field(
        type=OCI.IncomingCallingPlanPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "conference_key",
            "conferenceKey",
            OCI.MeetMeConferencingConferenceKey,
            True,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.MeetMeConferencingConferenceKey: *Required* conferenceKey
    conference_key = Field(
        type=OCI.MeetMeConferencingConferenceKey,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions: *Optional*
    #: userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions,
        required=False,
    )


class UserOutgoingCallingPlanDigitPlanOriginatingModifyRequest(OCIRequest):
    """
    Modify the originating permissions for digit patterns for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions: *Optional*
    #: userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions,
        required=False,
    )


class UserOutgoingCallingPlanDigitPlanRedirectingModifyRequest(OCIRequest):
    """
    Modify the redirecting permissions for digit patterns for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions: *Optional*
    #: userPermissions
    user_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions: *Optional*
    #: userPermissions
    user_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions,
        required=False,
    )


class UserOutgoingCallingPlanPinholeDigitPlanOriginatingModifyRequest(OCIRequest):
    """
    Modify the originating permissions for Pinhole digit patterns for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions: *Optional*
    #: userPermissions
    user_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
        required=False,
    )


class UserOutgoingCallingPlanPinholeDigitPlanRedirectingModifyRequest(OCIRequest):
    """
    Modify the redirecting permissions for Pinhole digit patterns for a user.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "use_custom_settings",
            "useCustomSettings",
            bool,
            False,
            False,
            False,
        ),
        E(
            "user_permissions",
            "userPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* useCustomSettings
    use_custom_settings = Field(
        type=bool,
        required=False,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions: *Optional*
    #: userPermissions
    user_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "include_common_phone_list",
            "includeCommonPhoneList",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_custom_contact_directory",
            "searchCriteriaExactCustomContactDirectory",
            OCI.SearchCriteriaExactCustomContactDirectory,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* includeCommonPhoneList
    include_common_phone_list = Field(
        type=bool,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactCustomContactDirectory: *Optional*
    #: searchCriteriaExactCustomContactDirectory
    search_criteria_exact_custom_contact_directory = Field(
        type=OCI.SearchCriteriaExactCustomContactDirectory,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_enterprise_info_requested",
            "isEnterpriseInfoRequested",
            bool,
            False,
            True,
            False,
        ),
        E(
            "response_paging_control",
            "responsePagingControl",
            OCI.ResponsePagingControl,
            True,
            True,
            False,
        ),
        E(
            "search_criteria_mode_or",
            "searchCriteriaModeOr",
            bool,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_group_location_code",
            "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_mobile_phone_number",
            "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_email_address",
            "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_yahoo_id",
            "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
        E(
            "sort_by_first_name",
            "sortByFirstName",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isEnterpriseInfoRequested
    is_enterprise_info_requested = Field(
        type=bool,
        required=True,
    )
    #: OCI.ResponsePagingControl: *Required* responsePagingControl
    response_paging_control = Field(
        type=OCI.ResponsePagingControl,
        required=True,
    )
    #: bool: *Optional* searchCriteriaModeOr
    search_criteria_mode_or = Field(
        type=bool,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaGroupLocationCode: *Optional* searchCriteriaGroupLocationCode
    search_criteria_group_location_code = Field(
        type=OCI.SearchCriteriaGroupLocationCode,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaMobilePhoneNumber: *Optional* searchCriteriaMobilePhoneNumber
    search_criteria_mobile_phone_number = Field(
        type=OCI.SearchCriteriaMobilePhoneNumber,
        required=False,
    )
    #: OCI.SearchCriteriaEmailAddress: *Optional* searchCriteriaEmailAddress
    search_criteria_email_address = Field(
        type=OCI.SearchCriteriaEmailAddress,
        required=False,
    )
    #: OCI.SearchCriteriaYahooId: *Optional* searchCriteriaYahooId
    search_criteria_yahoo_id = Field(
        type=OCI.SearchCriteriaYahooId,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )
    #: bool: *Optional* sortByFirstName
    sort_by_first_name = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=False,
    )


class UserPreAlertingAnnouncementModifyRequest(OCIRequest):
    """
    Modify the user's pre-alerting service setting.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserPreAlertingAnnouncementModifyRequest20(OCIRequest):
    """
    Modify the user's pre-alerting service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "audio_selection",
            "audioSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "video_selection",
            "videoSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.ExtendedMediaFileLevelResource20,
            True,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* audioSelection
    audio_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* audioFile
    audio_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: str: *Optional* videoSelection
    video_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileLevelResource20: *Optional* videoFile
    video_file = Field(
        type=OCI.ExtendedMediaFileLevelResource20,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.PriorityAlertCriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.PriorityAlertCriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.PriorityAlertCriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=False,
    )


class UserPushToTalkGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the push to talk service.
    The response is either ``UserPushToTalkGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "response_size_limit",
            "responseSizeLimit",
            int,
            False,
            False,
            False,
        ),
        E(
            "search_criteria_user_last_name",
            "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_first_name",
            "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_department",
            "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_exact_user_group",
            "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_user_id",
            "searchCriteriaUserId",
            OCI.SearchCriteriaUserId,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_dn",
            "searchCriteriaDn",
            OCI.SearchCriteriaDn,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_extension",
            "searchCriteriaExtension",
            OCI.SearchCriteriaExtension,
            True,
            False,
            False,
        ),
        E(
            "search_criteria_imp_id",
            "searchCriteriaImpId",
            OCI.SearchCriteriaImpId,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: int: *Optional* responseSizeLimit
    response_size_limit = Field(
        type=int,
        required=False,
    )
    #: OCI.SearchCriteriaUserLastName: *Optional* searchCriteriaUserLastName
    search_criteria_user_last_name = Field(
        type=OCI.SearchCriteriaUserLastName,
        required=False,
    )
    #: OCI.SearchCriteriaUserFirstName: *Optional* searchCriteriaUserFirstName
    search_criteria_user_first_name = Field(
        type=OCI.SearchCriteriaUserFirstName,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserDepartment: *Optional*
    #: searchCriteriaExactUserDepartment
    search_criteria_exact_user_department = Field(
        type=OCI.SearchCriteriaExactUserDepartment,
        required=False,
    )
    #: OCI.SearchCriteriaExactUserGroup: *Optional* searchCriteriaExactUserGroup
    search_criteria_exact_user_group = Field(
        type=OCI.SearchCriteriaExactUserGroup,
        required=False,
    )
    #: OCI.SearchCriteriaUserId: *Optional* searchCriteriaUserId
    search_criteria_user_id = Field(
        type=OCI.SearchCriteriaUserId,
        required=False,
    )
    #: OCI.SearchCriteriaDn: *Optional* searchCriteriaDn
    search_criteria_dn = Field(
        type=OCI.SearchCriteriaDn,
        required=False,
    )
    #: OCI.SearchCriteriaExtension: *Optional* searchCriteriaExtension
    search_criteria_extension = Field(
        type=OCI.SearchCriteriaExtension,
        required=False,
    )
    #: OCI.SearchCriteriaImpId: *Optional* searchCriteriaImpId
    search_criteria_imp_id = Field(
        type=OCI.SearchCriteriaImpId,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "schedule_global_key",
            "scheduleGlobalKey",
            OCI.ScheduleGlobalKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ScheduleGlobalKey: *Required* scheduleGlobalKey
    schedule_global_key = Field(
        type=OCI.ScheduleGlobalKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=False,
    )


class UserSelectiveCallRejectionModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's selective call rejection service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.SelectiveCallRejectionCriteriaCallTypeModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "call_to_number_list",
            "callToNumberList",
            OCI.ReplacementCallToNumberList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.SelectiveCallRejectionCriteriaCallTypeModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.SelectiveCallRejectionCriteriaCallTypeModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementCallToNumberList: *Optional* callToNumberList
    call_to_number_list = Field(
        type=OCI.ReplacementCallToNumberList,
        required=False,
    )


class UserSequentialRingModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's sequential ring service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointAdd: *Required* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=True,
    )


class UserSharedCallAppearanceAddEndpointRequest14sp2(OCIRequest):
    """
    Associate an access device instance to the user's Shared Call Appearance.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointAdd,
            True,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_origination",
            "allowOrigination",
            bool,
            False,
            True,
            False,
        ),
        E(
            "allow_termination",
            "allowTermination",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointAdd: *Required* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointAdd,
        required=True,
    )
    #: bool: *Required* isActive
    is_active = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowOrigination
    allow_origination = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* allowTermination
    allow_termination = Field(
        type=bool,
        required=True,
    )


class UserSharedCallAppearanceDeleteEndpointListRequest14(OCIRequest):
    """
    Disassociate one or more of a user's Shared Call Appearance endpoints.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointKey: *Required* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointKey,
        required=True,
    )


class UserSharedCallAppearanceGetEndpointRequest(OCIRequest):
    """
    Get the user's Shared Call Appearance endpoint setting.
    The response is either a ``UserSharedCallAppearanceGetEndpointResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointKey,
            True,
            True,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointKey: *Required* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointKey,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointKey,
            True,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_origination",
            "allowOrigination",
            bool,
            False,
            False,
            False,
        ),
        E(
            "allow_termination",
            "allowTermination",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.AccessDeviceEndpointKey: *Required* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointKey,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowOrigination
    allow_origination = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* allowTermination
    allow_termination = Field(
        type=bool,
        required=False,
    )


class UserSimultaneousRingFamilyModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's simultaneous ring family service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )


class UserSimultaneousRingFamilyModifyRequest17(OCIRequest):
    """
    Modify the user's simultaneous ring family service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "do_not_ring_if_on_call",
            "doNotRingIfOnCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "simultaneous_ring_number_list",
            "simultaneousRingNumberList",
            OCI.SimultaneousRingReplacementNumberList,
            True,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* doNotRingIfOnCall
    do_not_ring_if_on_call = Field(
        type=bool,
        required=False,
    )
    #: OCI.SimultaneousRingReplacementNumberList: *Optional* simultaneousRingNumberList
    simultaneous_ring_number_list = Field(
        type=OCI.SimultaneousRingReplacementNumberList,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserSimultaneousRingPersonalModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's simultaneous ring personal service.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "criteria_name",
            "criteriaName",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_criteria_name",
            "newCriteriaName",
            str,
            False,
            False,
            False,
        ),
        E(
            "time_schedule",
            "timeSchedule",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "blacklisted",
            "blacklisted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "from_dn_criteria",
            "fromDnCriteria",
            OCI.CriteriaFromDnModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* criteriaName
    criteria_name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newCriteriaName
    new_criteria_name = Field(
        type=str,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* timeSchedule
    time_schedule = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: bool: *Optional* blacklisted
    blacklisted = Field(
        type=bool,
        required=False,
    )
    #: OCI.CriteriaFromDnModify: *Optional* fromDnCriteria
    from_dn_criteria = Field(
        type=OCI.CriteriaFromDnModify,
        required=False,
    )


class UserSimultaneousRingPersonalModifyRequest17(OCIRequest):
    """
    Modify the user's simultaneous ring personal service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "do_not_ring_if_on_call",
            "doNotRingIfOnCall",
            bool,
            False,
            False,
            False,
        ),
        E(
            "simultaneous_ring_number_list",
            "simultaneousRingNumberList",
            OCI.SimultaneousRingReplacementNumberList,
            True,
            False,
            False,
        ),
        E(
            "criteria_activation",
            "criteriaActivation",
            OCI.CriteriaActivation,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* doNotRingIfOnCall
    do_not_ring_if_on_call = Field(
        type=bool,
        required=False,
    )
    #: OCI.SimultaneousRingReplacementNumberList: *Optional* simultaneousRingNumberList
    simultaneous_ring_number_list = Field(
        type=OCI.SimultaneousRingReplacementNumberList,
        required=False,
    )
    #: OCI.CriteriaActivation: *Optional* criteriaActivation
    criteria_activation = Field(
        type=OCI.CriteriaActivation,
        required=False,
    )


class UserVideoAddOnModifyRequest14(OCIRequest):
    """
    Modify the user's Video Add-On service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_active",
            "isActive",
            bool,
            False,
            False,
            False,
        ),
        E(
            "max_originating_call_delay_seconds",
            "maxOriginatingCallDelaySeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "access_device_endpoint",
            "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isActive
    is_active = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* maxOriginatingCallDelaySeconds
    max_originating_call_delay_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.AccessDeviceEndpointModify: *Optional* accessDeviceEndpoint
    access_device_endpoint = Field(
        type=OCI.AccessDeviceEndpointModify,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "busy_announcement_selection",
            "busyAnnouncementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "busy_personal_audio_file",
            "busyPersonalAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "busy_personal_video_file",
            "busyPersonalVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "no_answer_announcement_selection",
            "noAnswerAnnouncementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "no_answer_personal_audio_file",
            "noAnswerPersonalAudioFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "no_answer_personal_video_file",
            "noAnswerPersonalVideoFile",
            OCI.LabeledFileResource,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting01",
            "noAnswerAlternateGreeting01",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting02",
            "noAnswerAlternateGreeting02",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting03",
            "noAnswerAlternateGreeting03",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify,
            True,
            False,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* busyAnnouncementSelection
    busy_announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* busyPersonalAudioFile
    busy_personal_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* busyPersonalVideoFile
    busy_personal_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: str: *Optional* noAnswerAnnouncementSelection
    no_answer_announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* noAnswerPersonalAudioFile
    no_answer_personal_audio_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.LabeledFileResource: *Optional* noAnswerPersonalVideoFile
    no_answer_personal_video_file = Field(
        type=OCI.LabeledFileResource,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify: *Optional*
    #: noAnswerAlternateGreeting01
    no_answer_alternate_greeting01 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify: *Optional*
    #: noAnswerAlternateGreeting02
    no_answer_alternate_greeting02 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify: *Optional*
    #: noAnswerAlternateGreeting03
    no_answer_alternate_greeting03 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify,
        required=False,
    )
    #: int: *Optional* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "busy_announcement_selection",
            "busyAnnouncementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "busy_personal_audio_file",
            "busyPersonalAudioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "busy_personal_video_file",
            "busyPersonalVideoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "no_answer_announcement_selection",
            "noAnswerAnnouncementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "no_answer_personal_audio_file",
            "noAnswerPersonalAudioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "no_answer_personal_video_file",
            "noAnswerPersonalVideoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "extended_away_enabled",
            "extendedAwayEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "extended_away_disable_message_deposit",
            "extendedAwayDisableMessageDeposit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "extended_away_audio_file",
            "extendedAwayAudioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "extended_away_video_file",
            "extendedAwayVideoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting01",
            "noAnswerAlternateGreeting01",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify16,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting02",
            "noAnswerAlternateGreeting02",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify16,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting03",
            "noAnswerAlternateGreeting03",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify16,
            True,
            False,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_message_deposit",
            "disableMessageDeposit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disable_message_deposit_action",
            "disableMessageDepositAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "greeting_only_forward_destination",
            "greetingOnlyForwardDestination",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* busyAnnouncementSelection
    busy_announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* busyPersonalAudioFile
    busy_personal_audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* busyPersonalVideoFile
    busy_personal_video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: str: *Optional* noAnswerAnnouncementSelection
    no_answer_announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* noAnswerPersonalAudioFile
    no_answer_personal_audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* noAnswerPersonalVideoFile
    no_answer_personal_video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Optional* extendedAwayEnabled
    extended_away_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* extendedAwayDisableMessageDeposit
    extended_away_disable_message_deposit = Field(
        type=bool,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* extendedAwayAudioFile
    extended_away_audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* extendedAwayVideoFile
    extended_away_video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify16: *Optional*
    #: noAnswerAlternateGreeting01
    no_answer_alternate_greeting01 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify16,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify16: *Optional*
    #: noAnswerAlternateGreeting02
    no_answer_alternate_greeting02 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify16,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify16: *Optional*
    #: noAnswerAlternateGreeting03
    no_answer_alternate_greeting03 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify16,
        required=False,
    )
    #: int: *Optional* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableMessageDeposit
    disable_message_deposit = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* disableMessageDepositAction
    disable_message_deposit_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* greetingOnlyForwardDestination
    greeting_only_forward_destination = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "busy_announcement_selection",
            "busyAnnouncementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "busy_personal_audio_file",
            "busyPersonalAudioFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "busy_personal_video_file",
            "busyPersonalVideoFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "no_answer_announcement_selection",
            "noAnswerAnnouncementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "no_answer_personal_audio_file",
            "noAnswerPersonalAudioFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "no_answer_personal_video_file",
            "noAnswerPersonalVideoFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting01",
            "noAnswerAlternateGreeting01",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify20,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting02",
            "noAnswerAlternateGreeting02",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify20,
            True,
            False,
            False,
        ),
        E(
            "no_answer_alternate_greeting03",
            "noAnswerAlternateGreeting03",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify20,
            True,
            False,
            False,
        ),
        E(
            "extended_away_enabled",
            "extendedAwayEnabled",
            bool,
            False,
            False,
            False,
        ),
        E(
            "extended_away_disable_message_deposit",
            "extendedAwayDisableMessageDeposit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "extended_away_audio_file",
            "extendedAwayAudioFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "extended_away_video_file",
            "extendedAwayVideoFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "no_answer_number_of_rings",
            "noAnswerNumberOfRings",
            int,
            False,
            False,
            False,
        ),
        E(
            "disable_message_deposit",
            "disableMessageDeposit",
            bool,
            False,
            False,
            False,
        ),
        E(
            "disable_message_deposit_action",
            "disableMessageDepositAction",
            str,
            False,
            False,
            False,
        ),
        E(
            "greeting_only_forward_destination",
            "greetingOnlyForwardDestination",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* busyAnnouncementSelection
    busy_announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* busyPersonalAudioFile
    busy_personal_audio_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* busyPersonalVideoFile
    busy_personal_video_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: str: *Optional* noAnswerAnnouncementSelection
    no_answer_announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* noAnswerPersonalAudioFile
    no_answer_personal_audio_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* noAnswerPersonalVideoFile
    no_answer_personal_video_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify20: *Optional*
    #: noAnswerAlternateGreeting01
    no_answer_alternate_greeting01 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify20,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify20: *Optional*
    #: noAnswerAlternateGreeting02
    no_answer_alternate_greeting02 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify20,
        required=False,
    )
    #: OCI.VoiceMessagingAlternateNoAnswerGreetingModify20: *Optional*
    #: noAnswerAlternateGreeting03
    no_answer_alternate_greeting03 = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify20,
        required=False,
    )
    #: bool: *Optional* extendedAwayEnabled
    extended_away_enabled = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* extendedAwayDisableMessageDeposit
    extended_away_disable_message_deposit = Field(
        type=bool,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* extendedAwayAudioFile
    extended_away_audio_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* extendedAwayVideoFile
    extended_away_video_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: int: *Optional* noAnswerNumberOfRings
    no_answer_number_of_rings = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* disableMessageDeposit
    disable_message_deposit = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* disableMessageDepositAction
    disable_message_deposit_action = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* greetingOnlyForwardDestination
    greeting_only_forward_destination = Field(
        type=str,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_template",
            "reportTemplate",
            OCI.CallCenterReportTemplateKey,
            True,
            True,
            False,
        ),
        E(
            "schedule",
            "schedule",
            OCI.CallCenterReportSchedule,
            True,
            True,
            False,
        ),
        E(
            "sampling_period",
            "samplingPeriod",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_day_of_week",
            "startDayOfWeek",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_zone",
            "reportTimeZone",
            str,
            False,
            True,
            False,
        ),
        E(
            "report_date_format",
            "reportDateFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "report_time_format",
            "reportTimeFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "report_interval",
            "reportInterval",
            OCI.CallCenterReportInterval,
            True,
            True,
            False,
        ),
        E(
            "report_format",
            "reportFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent",
            "agent",
            OCI.CallCenterScheduledReportAgentSelection,
            True,
            False,
            False,
        ),
        E(
            "call_center",
            "callCenter",
            OCI.CallCenterScheduledReportCallCenterSelection,
            True,
            True,
            False,
        ),
        E(
            "dnis",
            "dnis",
            OCI.CallCenterScheduledReportDNISSelection,
            True,
            True,
            False,
        ),
        E(
            "call_completion_threshold_seconds",
            "callCompletionThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_seconds",
            "shortDurationThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_seconds",
            "serviceLevelThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_inclusions",
            "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusions,
            True,
            False,
            False,
        ),
        E(
            "service_level_objective_percentage",
            "serviceLevelObjectivePercentage",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_seconds",
            "abandonedCallThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportTemplateKey: *Required* reportTemplate
    report_template = Field(
        type=OCI.CallCenterReportTemplateKey,
        required=True,
    )
    #: OCI.CallCenterReportSchedule: *Required* schedule
    schedule = Field(
        type=OCI.CallCenterReportSchedule,
        required=True,
    )
    #: str: *Optional* samplingPeriod
    sampling_period = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDayOfWeek
    start_day_of_week = Field(
        type=str,
        required=False,
    )
    #: str: *Required* reportTimeZone
    report_time_zone = Field(
        type=str,
        required=True,
    )
    #: str: *Required* reportDateFormat
    report_date_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* reportTimeFormat
    report_time_format = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterReportInterval: *Required* reportInterval
    report_interval = Field(
        type=OCI.CallCenterReportInterval,
        required=True,
    )
    #: str: *Required* reportFormat
    report_format = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterScheduledReportAgentSelection: *Optional* agent
    agent = Field(
        type=OCI.CallCenterScheduledReportAgentSelection,
        required=False,
    )
    #: OCI.CallCenterScheduledReportCallCenterSelection: *Required* callCenter
    call_center = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection,
        required=True,
    )
    #: OCI.CallCenterScheduledReportDNISSelection: *Required* dnis
    dnis = Field(
        type=OCI.CallCenterScheduledReportDNISSelection,
        required=True,
    )
    #: int: *Optional* callCompletionThresholdSeconds
    call_completion_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* shortDurationThresholdSeconds
    short_duration_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* serviceLevelThresholdSeconds
    service_level_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterScheduledReportServiceLevelInclusions: *Optional*
    #: serviceLevelInclusions
    service_level_inclusions = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusions,
        required=False,
    )
    #: int: *Optional* serviceLevelObjectivePercentage
    service_level_objective_percentage = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* abandonedCallThresholdSeconds
    abandoned_call_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Required* emailAddress
    email_address = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "schedule",
            "schedule",
            OCI.CallCenterReportSchedule,
            True,
            False,
            False,
        ),
        E(
            "sampling_period",
            "samplingPeriod",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_day_of_week",
            "startDayOfWeek",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_zone",
            "reportTimeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_date_format",
            "reportDateFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_format",
            "reportTimeFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_interval",
            "reportInterval",
            OCI.CallCenterReportInterval,
            True,
            False,
            False,
        ),
        E(
            "report_format",
            "reportFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent",
            "agent",
            OCI.CallCenterScheduledReportAgentSelection,
            True,
            False,
            False,
        ),
        E(
            "call_center",
            "callCenter",
            OCI.CallCenterScheduledReportCallCenterSelection,
            True,
            True,
            False,
        ),
        E(
            "dnis",
            "dnis",
            OCI.CallCenterScheduledReportDNISSelection,
            True,
            True,
            False,
        ),
        E(
            "call_completion_threshold_seconds",
            "callCompletionThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_seconds",
            "shortDurationThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_seconds",
            "serviceLevelThresholdSeconds",
            OCI.CallCenterReportServiceLevelThresholdReplacementList,
            True,
            False,
            False,
        ),
        E(
            "service_level_inclusions",
            "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusionsModify,
            True,
            False,
            False,
        ),
        E(
            "service_level_objective_percentage",
            "serviceLevelObjectivePercentage",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_seconds",
            "abandonedCallThresholdSeconds",
            OCI.CallCenterReportAbandonedCallThresholdReplacementList,
            True,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            OCI.CallCenterReportReplacementEmailList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportSchedule: *Optional* schedule
    schedule = Field(
        type=OCI.CallCenterReportSchedule,
        required=False,
    )
    #: str: *Optional* samplingPeriod
    sampling_period = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDayOfWeek
    start_day_of_week = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportTimeZone
    report_time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportDateFormat
    report_date_format = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportTimeFormat
    report_time_format = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportInterval: *Optional* reportInterval
    report_interval = Field(
        type=OCI.CallCenterReportInterval,
        required=False,
    )
    #: str: *Optional* reportFormat
    report_format = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterScheduledReportAgentSelection: *Optional* agent
    agent = Field(
        type=OCI.CallCenterScheduledReportAgentSelection,
        required=False,
    )
    #: OCI.CallCenterScheduledReportCallCenterSelection: *Required* callCenter
    call_center = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection,
        required=True,
    )
    #: OCI.CallCenterScheduledReportDNISSelection: *Required* dnis
    dnis = Field(
        type=OCI.CallCenterScheduledReportDNISSelection,
        required=True,
    )
    #: int: *Optional* callCompletionThresholdSeconds
    call_completion_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* shortDurationThresholdSeconds
    short_duration_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportServiceLevelThresholdReplacementList: *Optional*
    #: serviceLevelThresholdSeconds
    service_level_threshold_seconds = Field(
        type=OCI.CallCenterReportServiceLevelThresholdReplacementList,
        required=False,
    )
    #: OCI.CallCenterScheduledReportServiceLevelInclusionsModify: *Optional*
    #: serviceLevelInclusions
    service_level_inclusions = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusionsModify,
        required=False,
    )
    #: int: *Optional* serviceLevelObjectivePercentage
    service_level_objective_percentage = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportAbandonedCallThresholdReplacementList: *Optional*
    #: abandonedCallThresholdSeconds
    abandoned_call_threshold_seconds = Field(
        type=OCI.CallCenterReportAbandonedCallThresholdReplacementList,
        required=False,
    )
    #: OCI.CallCenterReportReplacementEmailList: *Optional* emailAddress
    email_address = Field(
        type=OCI.CallCenterReportReplacementEmailList,
        required=False,
    )


class EnterpriseSessionAdmissionControlGroupModifyRequest(OCIRequest):
    """
    Request to modify a session admission control group for the enterprise.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "max_session",
            "maxSession",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_originating_sessions",
            "maxUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "max_user_terminating_sessions",
            "maxUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_session",
            "reservedSession",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_originating_sessions",
            "reservedUserOriginatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "reserved_user_terminating_sessions",
            "reservedUserTerminatingSessions",
            int,
            False,
            False,
            False,
        ),
        E(
            "become_default_group",
            "becomeDefaultGroup",
            bool,
            False,
            False,
            False,
        ),
        E(
            "count_intra_sac_group_sessions",
            "countIntraSACGroupSessions",
            bool,
            False,
            False,
            False,
        ),
        E(
            "device_list",
            "deviceList",
            OCI.ReplacementEnterpriseDeviceList,
            True,
            False,
            False,
        ),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: int: *Optional* maxSession
    max_session = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserOriginatingSessions
    max_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* maxUserTerminatingSessions
    max_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedSession
    reserved_session = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserOriginatingSessions
    reserved_user_originating_sessions = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* reservedUserTerminatingSessions
    reserved_user_terminating_sessions = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* becomeDefaultGroup
    become_default_group = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* countIntraSACGroupSessions
    count_intra_sac_group_sessions = Field(
        type=bool,
        required=False,
    )
    #: OCI.ReplacementEnterpriseDeviceList: *Optional* deviceList
    device_list = Field(
        type=OCI.ReplacementEnterpriseDeviceList,
        required=False,
    )
    #: bool: *Optional* blockEmergencyAndRepairCallsDueToSACLimits
    block_emergency_and_repair_calls_due_to_sac_limits = Field(
        type=bool,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "enable_level_extension_dialing",
            "enableLevelExtensionDialing",
            bool,
            False,
            True,
            False,
        ),
        E(
            "key_configuration",
            "keyConfiguration",
            OCI.AutoAttendantKeyConfiguration19,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* announcementSelection
    announcement_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.LabeledMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Required* enableLevelExtensionDialing
    enable_level_extension_dialing = Field(
        type=bool,
        required=True,
    )
    #: OCI.AutoAttendantKeyConfiguration19: *Optional* keyConfiguration
    key_configuration = Field(
        type=OCI.AutoAttendantKeyConfiguration19,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            True,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "enable_level_extension_dialing",
            "enableLevelExtensionDialing",
            bool,
            False,
            True,
            False,
        ),
        E(
            "key_configuration",
            "keyConfiguration",
            OCI.AutoAttendantKeyConfiguration20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* announcementSelection
    announcement_selection = Field(
        type=str,
        required=True,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* audioFile
    audio_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* videoFile
    video_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: bool: *Required* enableLevelExtensionDialing
    enable_level_extension_dialing = Field(
        type=bool,
        required=True,
    )
    #: OCI.AutoAttendantKeyConfiguration20: *Optional* keyConfiguration
    key_configuration = Field(
        type=OCI.AutoAttendantKeyConfiguration20,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_submenu_id",
            "newSubmenuId",
            str,
            False,
            False,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.LabeledMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "enable_level_extension_dialing",
            "enableLevelExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "key_configuration",
            "keyConfiguration",
            OCI.AutoAttendantKeyModifyConfiguration,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newSubmenuId
    new_submenu_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* announcementSelection
    announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* audioFile
    audio_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: OCI.LabeledMediaFileResource: *Optional* videoFile
    video_file = Field(
        type=OCI.LabeledMediaFileResource,
        required=False,
    )
    #: bool: *Optional* enableLevelExtensionDialing
    enable_level_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: OCI.AutoAttendantKeyModifyConfiguration: *Optional* keyConfiguration
    key_configuration = Field(
        type=OCI.AutoAttendantKeyModifyConfiguration,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "submenu_id",
            "submenuId",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_submenu_id",
            "newSubmenuId",
            str,
            False,
            False,
            False,
        ),
        E(
            "announcement_selection",
            "announcementSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "audio_file",
            "audioFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "video_file",
            "videoFile",
            OCI.AnnouncementFileLevelKey,
            True,
            False,
            False,
        ),
        E(
            "enable_level_extension_dialing",
            "enableLevelExtensionDialing",
            bool,
            False,
            False,
            False,
        ),
        E(
            "key_configuration",
            "keyConfiguration",
            OCI.AutoAttendantKeyModifyConfiguration20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* submenuId
    submenu_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newSubmenuId
    new_submenu_id = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* announcementSelection
    announcement_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* audioFile
    audio_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: OCI.AnnouncementFileLevelKey: *Optional* videoFile
    video_file = Field(
        type=OCI.AnnouncementFileLevelKey,
        required=False,
    )
    #: bool: *Optional* enableLevelExtensionDialing
    enable_level_extension_dialing = Field(
        type=bool,
        required=False,
    )
    #: OCI.AutoAttendantKeyModifyConfiguration20: *Optional* keyConfiguration
    key_configuration = Field(
        type=OCI.AutoAttendantKeyModifyConfiguration20,
        required=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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_template",
            "reportTemplate",
            OCI.CallCenterReportTemplateKey,
            True,
            True,
            False,
        ),
        E(
            "schedule",
            "schedule",
            OCI.CallCenterReportSchedule,
            True,
            True,
            False,
        ),
        E(
            "sampling_period",
            "samplingPeriod",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_day_of_week",
            "startDayOfWeek",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_zone",
            "reportTimeZone",
            str,
            False,
            True,
            False,
        ),
        E(
            "report_date_format",
            "reportDateFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "report_time_format",
            "reportTimeFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "report_interval",
            "reportInterval",
            OCI.CallCenterReportInterval,
            True,
            True,
            False,
        ),
        E(
            "report_format",
            "reportFormat",
            str,
            False,
            True,
            False,
        ),
        E(
            "agent",
            "agent",
            OCI.CallCenterScheduledReportAgentSelection,
            True,
            False,
            False,
        ),
        E(
            "call_center",
            "callCenter",
            OCI.CallCenterScheduledReportCallCenterSelection,
            True,
            True,
            False,
        ),
        E(
            "dnis",
            "dnis",
            OCI.CallCenterScheduledReportDNISSelection,
            True,
            True,
            False,
        ),
        E(
            "call_completion_threshold_seconds",
            "callCompletionThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_seconds",
            "shortDurationThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_seconds",
            "serviceLevelThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_inclusions",
            "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusions,
            True,
            False,
            False,
        ),
        E(
            "service_level_objective_percentage",
            "serviceLevelObjectivePercentage",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_seconds",
            "abandonedCallThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportTemplateKey: *Required* reportTemplate
    report_template = Field(
        type=OCI.CallCenterReportTemplateKey,
        required=True,
    )
    #: OCI.CallCenterReportSchedule: *Required* schedule
    schedule = Field(
        type=OCI.CallCenterReportSchedule,
        required=True,
    )
    #: str: *Optional* samplingPeriod
    sampling_period = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDayOfWeek
    start_day_of_week = Field(
        type=str,
        required=False,
    )
    #: str: *Required* reportTimeZone
    report_time_zone = Field(
        type=str,
        required=True,
    )
    #: str: *Required* reportDateFormat
    report_date_format = Field(
        type=str,
        required=True,
    )
    #: str: *Required* reportTimeFormat
    report_time_format = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterReportInterval: *Required* reportInterval
    report_interval = Field(
        type=OCI.CallCenterReportInterval,
        required=True,
    )
    #: str: *Required* reportFormat
    report_format = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterScheduledReportAgentSelection: *Optional* agent
    agent = Field(
        type=OCI.CallCenterScheduledReportAgentSelection,
        required=False,
    )
    #: OCI.CallCenterScheduledReportCallCenterSelection: *Required* callCenter
    call_center = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection,
        required=True,
    )
    #: OCI.CallCenterScheduledReportDNISSelection: *Required* dnis
    dnis = Field(
        type=OCI.CallCenterScheduledReportDNISSelection,
        required=True,
    )
    #: int: *Optional* callCompletionThresholdSeconds
    call_completion_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* shortDurationThresholdSeconds
    short_duration_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* serviceLevelThresholdSeconds
    service_level_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterScheduledReportServiceLevelInclusions: *Optional*
    #: serviceLevelInclusions
    service_level_inclusions = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusions,
        required=False,
    )
    #: int: *Optional* serviceLevelObjectivePercentage
    service_level_objective_percentage = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* abandonedCallThresholdSeconds
    abandoned_call_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Required* emailAddress
    email_address = Field(
        type=str,
        required=True,
    )


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.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "schedule",
            "schedule",
            OCI.CallCenterReportSchedule,
            True,
            False,
            False,
        ),
        E(
            "sampling_period",
            "samplingPeriod",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_day_of_week",
            "startDayOfWeek",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_zone",
            "reportTimeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_date_format",
            "reportDateFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_format",
            "reportTimeFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_interval",
            "reportInterval",
            OCI.CallCenterReportInterval,
            True,
            False,
            False,
        ),
        E(
            "report_format",
            "reportFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent",
            "agent",
            OCI.CallCenterScheduledReportAgentSelection,
            True,
            False,
            False,
        ),
        E(
            "call_center",
            "callCenter",
            OCI.CallCenterScheduledReportCallCenterSelection,
            True,
            True,
            False,
        ),
        E(
            "dnis",
            "dnis",
            OCI.CallCenterScheduledReportDNISSelection,
            True,
            True,
            False,
        ),
        E(
            "call_completion_threshold_seconds",
            "callCompletionThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_seconds",
            "shortDurationThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_seconds",
            "serviceLevelThresholdSeconds",
            OCI.CallCenterReportServiceLevelThresholdReplacementList,
            True,
            False,
            False,
        ),
        E(
            "service_level_inclusions",
            "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusionsModify,
            True,
            False,
            False,
        ),
        E(
            "service_level_objective_percentage",
            "serviceLevelObjectivePercentage",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_seconds",
            "abandonedCallThresholdSeconds",
            OCI.CallCenterReportAbandonedCallThresholdReplacementList,
            True,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            OCI.CallCenterReportReplacementEmailList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportSchedule: *Optional* schedule
    schedule = Field(
        type=OCI.CallCenterReportSchedule,
        required=False,
    )
    #: str: *Optional* samplingPeriod
    sampling_period = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDayOfWeek
    start_day_of_week = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportTimeZone
    report_time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportDateFormat
    report_date_format = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportTimeFormat
    report_time_format = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportInterval: *Optional* reportInterval
    report_interval = Field(
        type=OCI.CallCenterReportInterval,
        required=False,
    )
    #: str: *Optional* reportFormat
    report_format = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterScheduledReportAgentSelection: *Optional* agent
    agent = Field(
        type=OCI.CallCenterScheduledReportAgentSelection,
        required=False,
    )
    #: OCI.CallCenterScheduledReportCallCenterSelection: *Required* callCenter
    call_center = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection,
        required=True,
    )
    #: OCI.CallCenterScheduledReportDNISSelection: *Required* dnis
    dnis = Field(
        type=OCI.CallCenterScheduledReportDNISSelection,
        required=True,
    )
    #: int: *Optional* callCompletionThresholdSeconds
    call_completion_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* shortDurationThresholdSeconds
    short_duration_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportServiceLevelThresholdReplacementList: *Optional*
    #: serviceLevelThresholdSeconds
    service_level_threshold_seconds = Field(
        type=OCI.CallCenterReportServiceLevelThresholdReplacementList,
        required=False,
    )
    #: OCI.CallCenterScheduledReportServiceLevelInclusionsModify: *Optional*
    #: serviceLevelInclusions
    service_level_inclusions = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusionsModify,
        required=False,
    )
    #: int: *Optional* serviceLevelObjectivePercentage
    service_level_objective_percentage = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportAbandonedCallThresholdReplacementList: *Optional*
    #: abandonedCallThresholdSeconds
    abandoned_call_threshold_seconds = Field(
        type=OCI.CallCenterReportAbandonedCallThresholdReplacementList,
        required=False,
    )
    #: OCI.CallCenterReportReplacementEmailList: *Optional* emailAddress
    email_address = Field(
        type=OCI.CallCenterReportReplacementEmailList,
        required=False,
    )


class GroupCallCenterModifyAnnouncementRequest16(OCIRequest):
    """
    Modify a call center's announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_entrance_message",
            "playEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mandatory_entrance_message",
            "mandatoryEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_audio_message_selection",
            "entranceAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file",
            "entranceMessageAudioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "entrance_video_message_selection",
            "entranceVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_video_file",
            "entranceMessageVideoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "play_periodic_comfort_message",
            "playPeriodicComfortMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file",
            "periodicComfortMessageAudioFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file",
            "periodicComfortMessageVideoFile",
            OCI.ExtendedMediaFileResource,
            True,
            False,
            False,
        ),
        E(
            "enable_media_on_hold_for_queued_calls",
            "enableMediaOnHoldForQueuedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify16,
            True,
            False,
            False,
        ),
        E(
            "media_on_hold_use_alternate_source_for_internal_calls",
            "mediaOnHoldUseAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_internal_source",
            "mediaOnHoldInternalSource",
            OCI.CallCenterMediaOnHoldSourceModify16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* playEntranceMessage
    play_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mandatoryEntranceMessage
    mandatory_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* entranceAudioMessageSelection
    entrance_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* entranceMessageAudioFile
    entrance_message_audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* entranceVideoMessageSelection
    entrance_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* entranceMessageVideoFile
    entrance_message_video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: bool: *Optional* playPeriodicComfortMessage
    play_periodic_comfort_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* periodicComfortAudioMessageSelection
    periodic_comfort_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* periodicComfortMessageAudioFile
    periodic_comfort_message_audio_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: str: *Optional* periodicComfortVideoMessageSelection
    periodic_comfort_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.ExtendedMediaFileResource: *Optional* periodicComfortMessageVideoFile
    periodic_comfort_message_video_file = Field(
        type=OCI.ExtendedMediaFileResource,
        required=False,
    )
    #: bool: *Optional* enableMediaOnHoldForQueuedCalls
    enable_media_on_hold_for_queued_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify16: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify16,
        required=False,
    )
    #: bool: *Optional* mediaOnHoldUseAlternateSourceForInternalCalls
    media_on_hold_use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify16: *Optional* mediaOnHoldInternalSource
    media_on_hold_internal_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify16,
        required=False,
    )


class GroupCallCenterModifyAnnouncementRequest17(OCIRequest):
    """
    Modify a call center's announcement settings.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_entrance_message",
            "playEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mandatory_entrance_message",
            "mandatoryEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_audio_message_selection",
            "entranceAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_url_list",
            "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file_list",
            "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_video_message_selection",
            "entranceVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_video_url_list",
            "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_video_file_list",
            "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "play_periodic_comfort_message",
            "playPeriodicComfortMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "enable_media_on_hold_for_queued_calls",
            "enableMediaOnHoldForQueuedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17,
            True,
            False,
            False,
        ),
        E(
            "media_on_hold_use_alternate_source_for_internal_calls",
            "mediaOnHoldUseAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_internal_source",
            "mediaOnHoldInternalSource",
            OCI.CallCenterMediaOnHoldSourceModify17,
            True,
            False,
            False,
        ),
        E(
            "play_whisper_message",
            "playWhisperMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "whisper_audio_message_selection",
            "whisperAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_audio_url_list",
            "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_audio_file_list",
            "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_video_message_selection",
            "whisperVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_video_url_list",
            "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_video_file_list",
            "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "estimated_wait_message_options_modify",
            "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* playEntranceMessage
    play_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mandatoryEntranceMessage
    mandatory_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* entranceAudioMessageSelection
    entrance_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageAudioUrlList
    entrance_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* entranceMessageAudioFileList
    entrance_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* entranceVideoMessageSelection
    entrance_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageVideoUrlList
    entrance_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* entranceMessageVideoFileList
    entrance_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: bool: *Optional* playPeriodicComfortMessage
    play_periodic_comfort_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* periodicComfortAudioMessageSelection
    periodic_comfort_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageAudioUrlList
    periodic_comfort_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional*
    #: periodicComfortMessageAudioFileList
    periodic_comfort_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* periodicComfortVideoMessageSelection
    periodic_comfort_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageVideoUrlList
    periodic_comfort_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional*
    #: periodicComfortMessageVideoFileList
    periodic_comfort_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: bool: *Optional* enableMediaOnHoldForQueuedCalls
    enable_media_on_hold_for_queued_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify17: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17,
        required=False,
    )
    #: bool: *Optional* mediaOnHoldUseAlternateSourceForInternalCalls
    media_on_hold_use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify17: *Optional* mediaOnHoldInternalSource
    media_on_hold_internal_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17,
        required=False,
    )
    #: bool: *Optional* playWhisperMessage
    play_whisper_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* whisperAudioMessageSelection
    whisper_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageAudioUrlList
    whisper_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* whisperMessageAudioFileList
    whisper_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* whisperVideoMessageSelection
    whisper_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageVideoUrlList
    whisper_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* whisperMessageVideoFileList
    whisper_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: OCI.EstimatedWaitMessageOptionsModify: *Optional*
    #: estimatedWaitMessageOptionsModify
    estimated_wait_message_options_modify = Field(
        type=OCI.EstimatedWaitMessageOptionsModify,
        required=False,
    )


class GroupCallCenterModifyAnnouncementRequest20(OCIRequest):
    """
    Modify a call center's announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "play_entrance_message",
            "playEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mandatory_entrance_message",
            "mandatoryEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_audio_message_selection",
            "entranceAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_url_list",
            "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file_list",
            "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "entrance_video_message_selection",
            "entranceVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_video_url_list",
            "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_video_file_list",
            "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "play_periodic_comfort_message",
            "playPeriodicComfortMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "enable_media_on_hold_for_queued_calls",
            "enableMediaOnHoldForQueuedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20,
            True,
            False,
            False,
        ),
        E(
            "media_on_hold_use_alternate_source_for_internal_calls",
            "mediaOnHoldUseAlternateSourceForInternalCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_internal_source",
            "mediaOnHoldInternalSource",
            OCI.CallCenterMediaOnHoldSourceModify20,
            True,
            False,
            False,
        ),
        E(
            "play_whisper_message",
            "playWhisperMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "whisper_audio_message_selection",
            "whisperAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_audio_url_list",
            "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_audio_file_list",
            "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "whisper_video_message_selection",
            "whisperVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_video_url_list",
            "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_video_file_list",
            "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "estimated_wait_message_options_modify",
            "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* playEntranceMessage
    play_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mandatoryEntranceMessage
    mandatory_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* entranceAudioMessageSelection
    entrance_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageAudioUrlList
    entrance_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: entranceMessageAudioFileList
    entrance_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* entranceVideoMessageSelection
    entrance_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageVideoUrlList
    entrance_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: entranceMessageVideoFileList
    entrance_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: bool: *Optional* playPeriodicComfortMessage
    play_periodic_comfort_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* periodicComfortAudioMessageSelection
    periodic_comfort_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageAudioUrlList
    periodic_comfort_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: periodicComfortMessageAudioFileList
    periodic_comfort_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* periodicComfortVideoMessageSelection
    periodic_comfort_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageVideoUrlList
    periodic_comfort_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: periodicComfortMessageVideoFileList
    periodic_comfort_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: bool: *Optional* enableMediaOnHoldForQueuedCalls
    enable_media_on_hold_for_queued_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify20: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20,
        required=False,
    )
    #: bool: *Optional* mediaOnHoldUseAlternateSourceForInternalCalls
    media_on_hold_use_alternate_source_for_internal_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify20: *Optional* mediaOnHoldInternalSource
    media_on_hold_internal_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20,
        required=False,
    )
    #: bool: *Optional* playWhisperMessage
    play_whisper_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* whisperAudioMessageSelection
    whisper_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageAudioUrlList
    whisper_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* whisperMessageAudioFileList
    whisper_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* whisperVideoMessageSelection
    whisper_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageVideoUrlList
    whisper_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* whisperMessageVideoFileList
    whisper_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: OCI.EstimatedWaitMessageOptionsModify: *Optional*
    #: estimatedWaitMessageOptionsModify
    estimated_wait_message_options_modify = Field(
        type=OCI.EstimatedWaitMessageOptionsModify,
        required=False,
    )


class GroupCallCenterModifyDNISAnnouncementRequest(OCIRequest):
    """
    Modify a call center DNIS announcement settings.
    The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "play_entrance_message",
            "playEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mandatory_entrance_message",
            "mandatoryEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_audio_message_selection",
            "entranceAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_url_list",
            "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file_list",
            "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_video_message_selection",
            "entranceVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_video_url_list",
            "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_video_file_list",
            "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "play_periodic_comfort_message",
            "playPeriodicComfortMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "enable_media_on_hold_for_queued_calls",
            "enableMediaOnHoldForQueuedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17,
            True,
            False,
            False,
        ),
        E(
            "play_whisper_message",
            "playWhisperMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "whisper_audio_message_selection",
            "whisperAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_audio_url_list",
            "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_audio_file_list",
            "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_video_message_selection",
            "whisperVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_video_url_list",
            "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_video_file_list",
            "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify,
            True,
            False,
            False,
        ),
        E(
            "estimated_wait_message_options_modify",
            "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify,
            True,
            False,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: bool: *Optional* playEntranceMessage
    play_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mandatoryEntranceMessage
    mandatory_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* entranceAudioMessageSelection
    entrance_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageAudioUrlList
    entrance_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* entranceMessageAudioFileList
    entrance_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* entranceVideoMessageSelection
    entrance_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageVideoUrlList
    entrance_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* entranceMessageVideoFileList
    entrance_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: bool: *Optional* playPeriodicComfortMessage
    play_periodic_comfort_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* periodicComfortAudioMessageSelection
    periodic_comfort_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageAudioUrlList
    periodic_comfort_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional*
    #: periodicComfortMessageAudioFileList
    periodic_comfort_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* periodicComfortVideoMessageSelection
    periodic_comfort_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageVideoUrlList
    periodic_comfort_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional*
    #: periodicComfortMessageVideoFileList
    periodic_comfort_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: bool: *Optional* enableMediaOnHoldForQueuedCalls
    enable_media_on_hold_for_queued_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify17: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17,
        required=False,
    )
    #: bool: *Optional* playWhisperMessage
    play_whisper_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* whisperAudioMessageSelection
    whisper_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageAudioUrlList
    whisper_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* whisperMessageAudioFileList
    whisper_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: str: *Optional* whisperVideoMessageSelection
    whisper_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageVideoUrlList
    whisper_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify: *Optional* whisperMessageVideoFileList
    whisper_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify,
        required=False,
    )
    #: OCI.EstimatedWaitMessageOptionsModify: *Optional*
    #: estimatedWaitMessageOptionsModify
    estimated_wait_message_options_modify = Field(
        type=OCI.EstimatedWaitMessageOptionsModify,
        required=False,
    )


class GroupCallCenterModifyDNISAnnouncementRequest20(OCIRequest):
    """
    Modify a call center DNIS announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "play_entrance_message",
            "playEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "mandatory_entrance_message",
            "mandatoryEntranceMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "entrance_audio_message_selection",
            "entranceAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_audio_url_list",
            "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_audio_file_list",
            "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "entrance_video_message_selection",
            "entranceVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "entrance_message_video_url_list",
            "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "entrance_message_video_file_list",
            "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "play_periodic_comfort_message",
            "playPeriodicComfortMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "time_between_comfort_messages_seconds",
            "timeBetweenComfortMessagesSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "enable_media_on_hold_for_queued_calls",
            "enableMediaOnHoldForQueuedCalls",
            bool,
            False,
            False,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20,
            True,
            False,
            False,
        ),
        E(
            "play_whisper_message",
            "playWhisperMessage",
            bool,
            False,
            False,
            False,
        ),
        E(
            "whisper_audio_message_selection",
            "whisperAudioMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_audio_url_list",
            "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_audio_file_list",
            "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "whisper_video_message_selection",
            "whisperVideoMessageSelection",
            str,
            False,
            False,
            False,
        ),
        E(
            "whisper_message_video_url_list",
            "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify,
            True,
            False,
            False,
        ),
        E(
            "whisper_message_video_file_list",
            "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20,
            True,
            False,
            False,
        ),
        E(
            "estimated_wait_message_options_modify",
            "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify,
            True,
            False,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: bool: *Optional* playEntranceMessage
    play_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* mandatoryEntranceMessage
    mandatory_entrance_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* entranceAudioMessageSelection
    entrance_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageAudioUrlList
    entrance_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: entranceMessageAudioFileList
    entrance_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* entranceVideoMessageSelection
    entrance_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* entranceMessageVideoUrlList
    entrance_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: entranceMessageVideoFileList
    entrance_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: bool: *Optional* playPeriodicComfortMessage
    play_periodic_comfort_message = Field(
        type=bool,
        required=False,
    )
    #: int: *Optional* timeBetweenComfortMessagesSeconds
    time_between_comfort_messages_seconds = Field(
        type=int,
        required=False,
    )
    #: str: *Optional* periodicComfortAudioMessageSelection
    periodic_comfort_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageAudioUrlList
    periodic_comfort_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: periodicComfortMessageAudioFileList
    periodic_comfort_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* periodicComfortVideoMessageSelection
    periodic_comfort_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional*
    #: periodicComfortMessageVideoUrlList
    periodic_comfort_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional*
    #: periodicComfortMessageVideoFileList
    periodic_comfort_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: bool: *Optional* enableMediaOnHoldForQueuedCalls
    enable_media_on_hold_for_queued_calls = Field(
        type=bool,
        required=False,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify20: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20,
        required=False,
    )
    #: bool: *Optional* playWhisperMessage
    play_whisper_message = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* whisperAudioMessageSelection
    whisper_audio_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageAudioUrlList
    whisper_message_audio_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* whisperMessageAudioFileList
    whisper_message_audio_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: str: *Optional* whisperVideoMessageSelection
    whisper_video_message_selection = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterAnnouncementURLListModify: *Optional* whisperMessageVideoUrlList
    whisper_message_video_url_list = Field(
        type=OCI.CallCenterAnnouncementURLListModify,
        required=False,
    )
    #: OCI.CallCenterAnnouncementFileListModify20: *Optional* whisperMessageVideoFileList
    whisper_message_video_file_list = Field(
        type=OCI.CallCenterAnnouncementFileListModify20,
        required=False,
    )
    #: OCI.EstimatedWaitMessageOptionsModify: *Optional*
    #: estimatedWaitMessageOptionsModify
    estimated_wait_message_options_modify = Field(
        type=OCI.EstimatedWaitMessageOptionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanDigitPatternCallMeNowDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions: *Optional*
    #: groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDigitPatternCallMeNowDepartmentPermissionsModify:
    #: *Optional* departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternCallMeNowDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanDigitPatternOriginatingDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions: *Optional*
    #: groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDigitPatternOriginatingDepartmentPermissionsModify:
    #: *Optional* departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternOriginatingDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingCallingPlanDigitPatternRedirectingDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions: *Optional*
    #: groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions,
        required=False,
    )
    #: OCI.OutgoingCallingPlanDigitPatternRedirectingDepartmentPermissionsModify:
    #: *Optional* departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingCallingPlanDigitPatternRedirectingDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions: *Optional*
    #: groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions,
        required=False,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowDepartmentPermissionsModify:
    #: *Optional* departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions: *Optional*
    #: groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
        required=False,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingDepartmentPermissionsModify:
    #: *Optional* departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingDepartmentPermissionsModify,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_permissions",
            "groupPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
            True,
            False,
            False,
        ),
        E(
            "department_permissions",
            "departmentPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingDepartmentPermissionsModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions: *Optional*
    #: groupPermissions
    group_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
        required=False,
    )
    #: OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingDepartmentPermissionsModify:
    #: *Optional* departmentPermissions
    department_permissions = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingDepartmentPermissionsModify,
        required=False,
    )


class GroupRoutePointModifyAnnouncementRequest(OCIRequest):
    """
    Modify a route point's announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify17: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17,
        required=False,
    )


class GroupRoutePointModifyAnnouncementRequest20(OCIRequest):
    """
    Modify a route point's announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify20: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20,
        required=False,
    )


class GroupRoutePointModifyDNISAnnouncementRequest(OCIRequest):
    """
    Modify a route point DNIS announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17,
            True,
            False,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify17: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17,
        required=False,
    )


class GroupRoutePointModifyDNISAnnouncementRequest20(OCIRequest):
    """
    Modify a route point DNIS announcement settings.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "dnis_key",
            "dnisKey",
            OCI.DNISKey,
            True,
            True,
            False,
        ),
        E(
            "media_on_hold_source",
            "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20,
            True,
            False,
            False,
        ),
    )
    #: OCI.DNISKey: *Required* dnisKey
    dnis_key = Field(
        type=OCI.DNISKey,
        required=True,
    )
    #: OCI.CallCenterMediaOnHoldSourceModify20: *Optional* mediaOnHoldSource
    media_on_hold_source = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20,
        required=False,
    )


class SystemSIPDeviceTypeAddRequest14sp6(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By : ``SystemSIPDeviceTypeAddRequest15()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions14sp6,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "tdm_overlay",
            "tdmOverlay",
            bool,
            False,
            True,
            False,
        ),
        E(
            "supports_broad_works_info_for_call_waiting",
            "supportsBroadWorksINFOForCallWaiting",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions14sp6: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions14sp6,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* tdmOverlay
    tdm_overlay = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportsBroadWorksINFOForCallWaiting
    supports_broad_works_info_for_call_waiting = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeAddRequest15(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By : ``SystemSIPDeviceTypeAddRequest16()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions14sp6,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "tdm_overlay",
            "tdmOverlay",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions14sp6: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions14sp6,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* tdmOverlay
    tdm_overlay = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeAddRequest16(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeAddRequest16sp1()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeAddRequest16sp1(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By ``SystemSIPDeviceTypeAddRequest17()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )


class SystemSIPDeviceTypeAddRequest17(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )


class SystemSIPDeviceTypeAddRequest17sp4(OCIRequest):
    """
    Request to add a sip device type.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``SystemSIPDeviceTypeAddRequest18()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type_configuration_option",
            "deviceTypeConfigurationOption",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceTypeConfigurationOption
    device_type_configuration_option = Field(
        type=str,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            True,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type_configuration_option",
            "deviceTypeConfigurationOption",
            str,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* holdNormalization
    hold_normalization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceTypeConfigurationOption
    device_type_configuration_option = Field(
        type=str,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            True,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type_configuration_option",
            "deviceTypeConfigurationOption",
            str,
            False,
            True,
            False,
        ),
        E(
            "support_rfc3398",
            "supportRFC3398",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_line_ordering",
            "staticLineOrdering",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* holdNormalization
    hold_normalization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceTypeConfigurationOption
    device_type_configuration_option = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* supportRFC3398
    support_rfc3398 = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticLineOrdering
    static_line_ordering = Field(
        type=bool,
        required=True,
    )


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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            True,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type_configuration_option",
            "deviceTypeConfigurationOption",
            str,
            False,
            True,
            False,
        ),
        E(
            "support_rfc3398",
            "supportRFC3398",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_line_ordering",
            "staticLineOrdering",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bypass_media_treatment",
            "bypassMediaTreatment",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* holdNormalization
    hold_normalization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceTypeConfigurationOption
    device_type_configuration_option = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* supportRFC3398
    support_rfc3398 = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticLineOrdering
    static_line_ordering = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* bypassMediaTreatment
    bypass_media_treatment = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            True,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type_configuration_option",
            "deviceTypeConfigurationOption",
            str,
            False,
            True,
            False,
        ),
        E(
            "support_rfc3398",
            "supportRFC3398",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_line_ordering",
            "staticLineOrdering",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_client_session_info",
            "supportClientSessionInfo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_remote_party_info",
            "supportRemotePartyInfo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_visual_device_management",
            "supportVisualDeviceManagement",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bypass_media_treatment",
            "bypassMediaTreatment",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* holdNormalization
    hold_normalization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceTypeConfigurationOption
    device_type_configuration_option = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* supportRFC3398
    support_rfc3398 = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticLineOrdering
    static_line_ordering = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportClientSessionInfo
    support_client_session_info = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportCallInfoConferenceSubscriptionURI
    support_call_info_conference_subscription_uri = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportRemotePartyInfo
    support_remote_party_info = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportVisualDeviceManagement
    support_visual_device_management = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* bypassMediaTreatment
    bypass_media_treatment = Field(
        type=bool,
        required=True,
    )


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
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "number_of_ports",
            "numberOfPorts",
            OCI.UnboundedPositiveInt,
            True,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            True,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_conference_device",
            "isConferenceDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_mobility_manager_device",
            "isMobilityManagerDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "is_music_on_hold_device",
            "isMusicOnHoldDevice",
            bool,
            False,
            True,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            True,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            True,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            True,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            True,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            True,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            True,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            True,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            True,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            True,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            True,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            True,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            True,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            True,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            True,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            True,
            False,
        ),
        E(
            "enhanced_for_ics",
            "enhancedForICS",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            True,
            False,
        ),
        E(
            "device_type_configuration_option",
            "deviceTypeConfigurationOption",
            str,
            False,
            True,
            False,
        ),
        E(
            "support_rfc3398",
            "supportRFC3398",
            bool,
            False,
            True,
            False,
        ),
        E(
            "static_line_ordering",
            "staticLineOrdering",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_client_session_info",
            "supportClientSessionInfo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_remote_party_info",
            "supportRemotePartyInfo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_visual_device_management",
            "supportVisualDeviceManagement",
            bool,
            False,
            True,
            False,
        ),
        E(
            "bypass_media_treatment",
            "bypassMediaTreatment",
            bool,
            False,
            True,
            False,
        ),
        E(
            "supports3_g4_g_continuity",
            "supports3G4GContinuity",
            bool,
            False,
            True,
            False,
        ),
        E(
            "publishes_own_presence",
            "publishesOwnPresence",
            bool,
            False,
            True,
            False,
        ),
        E(
            "support_cause_parameter",
            "supportCauseParameter",
            bool,
            False,
            True,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: OCI.UnboundedPositiveInt: *Required* numberOfPorts
    number_of_ports = Field(
        type=OCI.UnboundedPositiveInt,
        required=True,
    )
    #: str: *Required* profile
    profile = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* registrationCapable
    registration_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isConferenceDevice
    is_conference_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMobilityManagerDevice
    is_mobility_manager_device = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* isMusicOnHoldDevice
    is_music_on_hold_device = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* holdNormalization
    hold_normalization = Field(
        type=str,
        required=True,
    )
    #: str: *Required* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* isTrusted
    is_trusted = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* E164Capable
    e164_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* routeAdvance
    route_advance = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=True,
    )
    #: OCI.CPEDeviceOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceOptions16sp1,
        required=False,
    )
    #: str: *Required* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* authenticationMode
    authentication_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Required* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* trunkMode
    trunk_mode = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enhancedForICS
    enhanced_for_ics = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=True,
    )
    #: str: *Required* deviceTypeConfigurationOption
    device_type_configuration_option = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* supportRFC3398
    support_rfc3398 = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* staticLineOrdering
    static_line_ordering = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportClientSessionInfo
    support_client_session_info = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportCallInfoConferenceSubscriptionURI
    support_call_info_conference_subscription_uri = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportRemotePartyInfo
    support_remote_party_info = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportVisualDeviceManagement
    support_visual_device_management = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* bypassMediaTreatment
    bypass_media_treatment = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supports3G4GContinuity
    supports3_g4_g_continuity = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* publishesOwnPresence
    publishes_own_presence = Field(
        type=bool,
        required=True,
    )
    #: bool: *Required* supportCauseParameter
    support_cause_parameter = Field(
        type=bool,
        required=True,
    )


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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_override",
            "authenticationOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* authenticationOverride
    authentication_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "tdm_overlay",
            "tdmOverlay",
            bool,
            False,
            False,
            False,
        ),
        E(
            "supports_broad_works_info_for_call_waiting",
            "supportsBroadWorksINFOForCallWaiting",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* tdmOverlay
    tdm_overlay = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportsBroadWorksINFOForCallWaiting
    supports_broad_works_info_for_call_waiting = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "tdm_overlay",
            "tdmOverlay",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* tdmOverlay
    tdm_overlay = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions16,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            False,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions16: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions16,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_business_trunking_contact",
            "useBusinessTrunkingContact",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            False,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useBusinessTrunkingContact
    use_business_trunking_contact = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions16sp1,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "rfc3264_hold",
            "RFC3264Hold",
            bool,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            False,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            False,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* RFC3264Hold
    rfc3264_hold = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions16sp1,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* trunkMode
    trunk_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=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
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            False,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            False,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            False,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enable3_g4_g_continuity",
            "enable3G4GContinuity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_rfc3398",
            "supportRFC3398",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_client_session_info",
            "supportClientSessionInfo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_remote_party_info",
            "supportRemotePartyInfo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_visual_device_management",
            "supportVisualDeviceManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bypass_media_treatment",
            "bypassMediaTreatment",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* holdNormalization
    hold_normalization = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions16sp1,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* trunkMode
    trunk_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enable3G4GContinuity
    enable3_g4_g_continuity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportRFC3398
    support_rfc3398 = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportClientSessionInfo
    support_client_session_info = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportCallInfoConferenceSubscriptionURI
    support_call_info_conference_subscription_uri = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportRemotePartyInfo
    support_remote_party_info = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportVisualDeviceManagement
    support_visual_device_management = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* bypassMediaTreatment
    bypass_media_treatment = Field(
        type=bool,
        required=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
    """

    _ELEMENTS = (
        E(
            "device_type",
            "deviceType",
            str,
            False,
            True,
            False,
        ),
        E(
            "is_obsolete",
            "isObsolete",
            bool,
            False,
            False,
            False,
        ),
        E(
            "registration_capable",
            "registrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "hold_normalization",
            "holdNormalization",
            str,
            False,
            False,
            False,
        ),
        E(
            "hold_announcement_method",
            "holdAnnouncementMethod",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_trusted",
            "isTrusted",
            bool,
            False,
            False,
            False,
        ),
        E(
            "e164_capable",
            "E164Capable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "route_advance",
            "routeAdvance",
            bool,
            False,
            False,
            False,
        ),
        E(
            "forwarding_override",
            "forwardingOverride",
            bool,
            False,
            False,
            False,
        ),
        E(
            "wireless_integration",
            "wirelessIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "web_based_config_url",
            "webBasedConfigURL",
            str,
            False,
            False,
            False,
        ),
        E(
            "is_video_capable",
            "isVideoCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "pbx_integration",
            "PBXIntegration",
            bool,
            False,
            False,
            False,
        ),
        E(
            "static_registration_capable",
            "staticRegistrationCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "cpe_device_options",
            "cpeDeviceOptions",
            OCI.CPEDeviceModifyOptions16sp1,
            True,
            False,
            False,
        ),
        E(
            "early_media_support",
            "earlyMediaSupport",
            str,
            False,
            False,
            False,
        ),
        E(
            "authenticate_refer",
            "authenticateRefer",
            bool,
            False,
            False,
            False,
        ),
        E(
            "auto_config_soft_client",
            "autoConfigSoftClient",
            bool,
            False,
            False,
            False,
        ),
        E(
            "authentication_mode",
            "authenticationMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_digit_collection",
            "requiresBroadWorksDigitCollection",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_broad_works_call_waiting_tone",
            "requiresBroadWorksCallWaitingTone",
            bool,
            False,
            False,
            False,
        ),
        E(
            "requires_mwi_subscription",
            "requiresMWISubscription",
            bool,
            False,
            False,
            False,
        ),
        E(
            "use_history_info_header_on_access_side",
            "useHistoryInfoHeaderOnAccessSide",
            bool,
            False,
            False,
            False,
        ),
        E(
            "advice_of_charge_capable",
            "adviceOfChargeCapable",
            bool,
            False,
            False,
            False,
        ),
        E(
            "reset_event",
            "resetEvent",
            str,
            False,
            False,
            False,
        ),
        E(
            "support_call_center_mime_type",
            "supportCallCenterMIMEType",
            bool,
            False,
            False,
            False,
        ),
        E(
            "trunk_mode",
            "trunkMode",
            str,
            False,
            False,
            False,
        ),
        E(
            "add_p_called_party_id",
            "addPCalledPartyId",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite",
            bool,
            False,
            False,
            False,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy",
            str,
            False,
            False,
            False,
        ),
        E(
            "enhanced_for_ics",
            "enhancedForICS",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_emergency_disconnect_control",
            "supportEmergencyDisconnectControl",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_rfc3398",
            "supportRFC3398",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_client_session_info",
            "supportClientSessionInfo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_remote_party_info",
            "supportRemotePartyInfo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_visual_device_management",
            "supportVisualDeviceManagement",
            bool,
            False,
            False,
            False,
        ),
        E(
            "bypass_media_treatment",
            "bypassMediaTreatment",
            bool,
            False,
            False,
            False,
        ),
        E(
            "supports3_g4_g_continuity",
            "supports3G4GContinuity",
            bool,
            False,
            False,
            False,
        ),
        E(
            "publishes_own_presence",
            "publishesOwnPresence",
            bool,
            False,
            False,
            False,
        ),
        E(
            "support_cause_parameter",
            "supportCauseParameter",
            bool,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* deviceType
    device_type = Field(
        type=str,
        required=True,
    )
    #: bool: *Optional* isObsolete
    is_obsolete = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* registrationCapable
    registration_capable = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* holdNormalization
    hold_normalization = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holdAnnouncementMethod
    hold_announcement_method = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isTrusted
    is_trusted = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* E164Capable
    e164_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* routeAdvance
    route_advance = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* forwardingOverride
    forwarding_override = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* wirelessIntegration
    wireless_integration = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* webBasedConfigURL
    web_based_config_url = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* isVideoCapable
    is_video_capable = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* PBXIntegration
    pbx_integration = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* staticRegistrationCapable
    static_registration_capable = Field(
        type=bool,
        required=False,
    )
    #: OCI.CPEDeviceModifyOptions16sp1: *Optional* cpeDeviceOptions
    cpe_device_options = Field(
        type=OCI.CPEDeviceModifyOptions16sp1,
        required=False,
    )
    #: str: *Optional* earlyMediaSupport
    early_media_support = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* authenticateRefer
    authenticate_refer = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* autoConfigSoftClient
    auto_config_soft_client = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* authenticationMode
    authentication_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksDigitCollection
    requires_broad_works_digit_collection = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresBroadWorksCallWaitingTone
    requires_broad_works_call_waiting_tone = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* requiresMWISubscription
    requires_mwi_subscription = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* useHistoryInfoHeaderOnAccessSide
    use_history_info_header_on_access_side = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* adviceOfChargeCapable
    advice_of_charge_capable = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* resetEvent
    reset_event = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* supportCallCenterMIMEType
    support_call_center_mime_type = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* trunkMode
    trunk_mode = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* addPCalledPartyId
    add_p_called_party_id = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportIdentityInUpdateAndReInvite
    support_identity_in_update_and_re_invite = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* unscreenedPresentationIdentityPolicy
    unscreened_presentation_identity_policy = Field(
        type=str,
        required=False,
    )
    #: bool: *Optional* enhancedForICS
    enhanced_for_ics = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportEmergencyDisconnectControl
    support_emergency_disconnect_control = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportRFC3398
    support_rfc3398 = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportClientSessionInfo
    support_client_session_info = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportCallInfoConferenceSubscriptionURI
    support_call_info_conference_subscription_uri = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportRemotePartyInfo
    support_remote_party_info = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportVisualDeviceManagement
    support_visual_device_management = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* bypassMediaTreatment
    bypass_media_treatment = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supports3G4GContinuity
    supports3_g4_g_continuity = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* publishesOwnPresence
    publishes_own_presence = Field(
        type=bool,
        required=False,
    )
    #: bool: *Optional* supportCauseParameter
    support_cause_parameter = Field(
        type=bool,
        required=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.
    """

    _ELEMENTS = (
        E(
            "supervisor_user_id",
            "supervisorUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "name",
            "name",
            str,
            False,
            True,
            False,
        ),
        E(
            "new_name",
            "newName",
            str,
            False,
            False,
            False,
        ),
        E(
            "description",
            "description",
            str,
            False,
            False,
            False,
        ),
        E(
            "schedule",
            "schedule",
            OCI.CallCenterReportSchedule,
            True,
            False,
            False,
        ),
        E(
            "sampling_period",
            "samplingPeriod",
            str,
            False,
            False,
            False,
        ),
        E(
            "start_day_of_week",
            "startDayOfWeek",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_zone",
            "reportTimeZone",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_date_format",
            "reportDateFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_time_format",
            "reportTimeFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "report_interval",
            "reportInterval",
            OCI.CallCenterReportInterval,
            True,
            False,
            False,
        ),
        E(
            "report_format",
            "reportFormat",
            str,
            False,
            False,
            False,
        ),
        E(
            "agent",
            "agent",
            OCI.CallCenterScheduledReportAgentSelection,
            True,
            False,
            False,
        ),
        E(
            "call_center",
            "callCenter",
            OCI.CallCenterScheduledReportCallCenterSelection,
            True,
            True,
            False,
        ),
        E(
            "dnis",
            "dnis",
            OCI.CallCenterScheduledReportDNISSelection,
            True,
            True,
            False,
        ),
        E(
            "call_completion_threshold_seconds",
            "callCompletionThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "short_duration_threshold_seconds",
            "shortDurationThresholdSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "service_level_threshold_seconds",
            "serviceLevelThresholdSeconds",
            OCI.CallCenterReportServiceLevelThresholdReplacementList,
            True,
            False,
            False,
        ),
        E(
            "service_level_inclusions",
            "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusionsModify,
            True,
            False,
            False,
        ),
        E(
            "service_level_objective_percentage",
            "serviceLevelObjectivePercentage",
            int,
            False,
            False,
            False,
        ),
        E(
            "abandoned_call_threshold_seconds",
            "abandonedCallThresholdSeconds",
            OCI.CallCenterReportAbandonedCallThresholdReplacementList,
            True,
            False,
            False,
        ),
        E(
            "email_address",
            "emailAddress",
            OCI.CallCenterReportReplacementEmailList,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* supervisorUserId
    supervisor_user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* name
    name = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* newName
    new_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* description
    description = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportSchedule: *Optional* schedule
    schedule = Field(
        type=OCI.CallCenterReportSchedule,
        required=False,
    )
    #: str: *Optional* samplingPeriod
    sampling_period = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* startDayOfWeek
    start_day_of_week = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportTimeZone
    report_time_zone = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportDateFormat
    report_date_format = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* reportTimeFormat
    report_time_format = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterReportInterval: *Optional* reportInterval
    report_interval = Field(
        type=OCI.CallCenterReportInterval,
        required=False,
    )
    #: str: *Optional* reportFormat
    report_format = Field(
        type=str,
        required=False,
    )
    #: OCI.CallCenterScheduledReportAgentSelection: *Optional* agent
    agent = Field(
        type=OCI.CallCenterScheduledReportAgentSelection,
        required=False,
    )
    #: OCI.CallCenterScheduledReportCallCenterSelection: *Required* callCenter
    call_center = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection,
        required=True,
    )
    #: OCI.CallCenterScheduledReportDNISSelection: *Required* dnis
    dnis = Field(
        type=OCI.CallCenterScheduledReportDNISSelection,
        required=True,
    )
    #: int: *Optional* callCompletionThresholdSeconds
    call_completion_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: int: *Optional* shortDurationThresholdSeconds
    short_duration_threshold_seconds = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportServiceLevelThresholdReplacementList: *Optional*
    #: serviceLevelThresholdSeconds
    service_level_threshold_seconds = Field(
        type=OCI.CallCenterReportServiceLevelThresholdReplacementList,
        required=False,
    )
    #: OCI.CallCenterScheduledReportServiceLevelInclusionsModify: *Optional*
    #: serviceLevelInclusions
    service_level_inclusions = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusionsModify,
        required=False,
    )
    #: int: *Optional* serviceLevelObjectivePercentage
    service_level_objective_percentage = Field(
        type=int,
        required=False,
    )
    #: OCI.CallCenterReportAbandonedCallThresholdReplacementList: *Optional*
    #: abandonedCallThresholdSeconds
    abandoned_call_threshold_seconds = Field(
        type=OCI.CallCenterReportAbandonedCallThresholdReplacementList,
        required=False,
    )
    #: OCI.CallCenterReportReplacementEmailList: *Optional* emailAddress
    email_address = Field(
        type=OCI.CallCenterReportReplacementEmailList,
        required=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()``
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            True,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantAddMenu,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantAddMenu,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: str: *Required* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=True,
    )
    #: OCI.AutoAttendantAddMenu: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            True,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantAddMenu16,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantAddMenu16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: str: *Required* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=True,
    )
    #: OCI.AutoAttendantAddMenu16: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu16,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu16: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu16,
        required=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()``.
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            True,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantAddMenu16,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantAddMenu16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Required* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=True,
    )
    #: OCI.AutoAttendantAddMenu16: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu16,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu16: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu16,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            True,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantAddMenu19,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantAddMenu19,
            True,
            False,
            False,
        ),
        E(
            "holiday_menu",
            "holidayMenu",
            OCI.AutoAttendantAddMenu19,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Required* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=True,
    )
    #: OCI.AutoAttendantAddMenu19: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu19,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu19: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu19,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu19: *Optional* holidayMenu
    holiday_menu = Field(
        type=OCI.AutoAttendantAddMenu19,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_provider_id",
            "serviceProviderId",
            str,
            False,
            True,
            False,
        ),
        E(
            "group_id",
            "groupId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile,
            True,
            True,
            False,
        ),
        E(
            "type",
            "type",
            str,
            False,
            True,
            False,
        ),
        E(
            "first_digit_timeout_seconds",
            "firstDigitTimeoutSeconds",
            int,
            False,
            True,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            True,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            True,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            True,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantAddMenu20,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantAddMenu20,
            True,
            False,
            False,
        ),
        E(
            "holiday_menu",
            "holidayMenu",
            OCI.AutoAttendantAddMenu20,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceProviderId
    service_provider_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* groupId
    group_id = Field(
        type=str,
        required=True,
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceAddProfile: *Required* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceAddProfile,
        required=True,
    )
    #: str: *Required* type
    type = Field(
        type=str,
        required=True,
    )
    #: int: *Required* firstDigitTimeoutSeconds
    first_digit_timeout_seconds = Field(
        type=int,
        required=True,
    )
    #: bool: *Required* enableVideo
    enable_video = Field(
        type=bool,
        required=True,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Required* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=True,
    )
    #: str: *Required* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=True,
    )
    #: OCI.AutoAttendantAddMenu20: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu20,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu20: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantAddMenu20,
        required=False,
    )
    #: OCI.AutoAttendantAddMenu20: *Optional* holidayMenu
    holiday_menu = Field(
        type=OCI.AutoAttendantAddMenu20,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class GroupAutoAttendantModifyInstanceRequest(OCIRequest):
    """
    Request to modify an Auto Attendant instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    Replaced By ``GroupAutoAttendantModifyInstanceRequest16()``
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantModifyMenu,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantModifyMenu,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu,
        required=False,
    )


class GroupAutoAttendantModifyInstanceRequest16(OCIRequest):
    """
    Request to modify an Auto Attendant instance.
    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            str,
            False,
            False,
            False,
        ),
        E(
            "holiday_schedule_name",
            "holidayScheduleName",
            str,
            False,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantModifyMenu16,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantModifyMenu16,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: str: *Optional* businessHours
    business_hours = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* holidayScheduleName
    holiday_schedule_name = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu16: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu16,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu16: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu16,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "first_digit_timeout_seconds",
            "firstDigitTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantModifyMenu16,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantModifyMenu16,
            True,
            False,
            False,
        ),
        E(
            "holiday_menu",
            "holidayMenu",
            OCI.AutoAttendantModifyMenu16,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: int: *Optional* firstDigitTimeoutSeconds
    first_digit_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu16: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu16,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu16: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu16,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu16: *Optional* holidayMenu
    holiday_menu = Field(
        type=OCI.AutoAttendantModifyMenu16,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=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
    """

    _ELEMENTS = (
        E(
            "service_user_id",
            "serviceUserId",
            str,
            False,
            True,
            False,
        ),
        E(
            "service_instance_profile",
            "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile,
            True,
            False,
            False,
        ),
        E(
            "first_digit_timeout_seconds",
            "firstDigitTimeoutSeconds",
            int,
            False,
            False,
            False,
        ),
        E(
            "enable_video",
            "enableVideo",
            bool,
            False,
            False,
            False,
        ),
        E(
            "business_hours",
            "businessHours",
            OCI.TimeSchedule,
            True,
            False,
            False,
        ),
        E(
            "holiday_schedule",
            "holidaySchedule",
            OCI.HolidaySchedule,
            True,
            False,
            False,
        ),
        E(
            "extension_dialing_scope",
            "extensionDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_scope",
            "nameDialingScope",
            str,
            False,
            False,
            False,
        ),
        E(
            "name_dialing_entries",
            "nameDialingEntries",
            str,
            False,
            False,
            False,
        ),
        E(
            "business_hours_menu",
            "businessHoursMenu",
            OCI.AutoAttendantModifyMenu20,
            True,
            False,
            False,
        ),
        E(
            "after_hours_menu",
            "afterHoursMenu",
            OCI.AutoAttendantModifyMenu20,
            True,
            False,
            False,
        ),
        E(
            "holiday_menu",
            "holidayMenu",
            OCI.AutoAttendantModifyMenu20,
            True,
            False,
            False,
        ),
        E(
            "network_class_of_service",
            "networkClassOfService",
            str,
            False,
            False,
            False,
        ),
    )
    #: str: *Required* serviceUserId
    service_user_id = Field(
        type=str,
        required=True,
    )
    #: OCI.ServiceInstanceModifyProfile: *Optional* serviceInstanceProfile
    service_instance_profile = Field(
        type=OCI.ServiceInstanceModifyProfile,
        required=False,
    )
    #: int: *Optional* firstDigitTimeoutSeconds
    first_digit_timeout_seconds = Field(
        type=int,
        required=False,
    )
    #: bool: *Optional* enableVideo
    enable_video = Field(
        type=bool,
        required=False,
    )
    #: OCI.TimeSchedule: *Optional* businessHours
    business_hours = Field(
        type=OCI.TimeSchedule,
        required=False,
    )
    #: OCI.HolidaySchedule: *Optional* holidaySchedule
    holiday_schedule = Field(
        type=OCI.HolidaySchedule,
        required=False,
    )
    #: str: *Optional* extensionDialingScope
    extension_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingScope
    name_dialing_scope = Field(
        type=str,
        required=False,
    )
    #: str: *Optional* nameDialingEntries
    name_dialing_entries = Field(
        type=str,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu20: *Optional* businessHoursMenu
    business_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu20,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu20: *Optional* afterHoursMenu
    after_hours_menu = Field(
        type=OCI.AutoAttendantModifyMenu20,
        required=False,
    )
    #: OCI.AutoAttendantModifyMenu20: *Optional* holidayMenu
    holiday_menu = Field(
        type=OCI.AutoAttendantModifyMenu20,
        required=False,
    )
    #: str: *Optional* networkClassOfService
    network_class_of_service = Field(
        type=str,
        required=False,
    )


class UserCommPilotExpressSRModifyRequest(OCIRequest):
    """
    Modify the user's commPilot express SR service setting.
    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = (
        E(
            "user_id",
            "userId",
            str,
            False,
            True,
            False,
        ),
        E(
            "profile",
            "profile",
            str,
            False,
            False,
            False,
        ),
        E(
            "available_in_office",
            "availableInOffice",
            OCI.CommPilotExpressSRAvailableInOfficeModify,
            True,
            False,
            False,
        ),
        E(
            "available_out_of_office",
            "availableOutOfOffice",
            OCI.CommPilotExpressSRAvailableOutOfOfficeModify,
            True,
            False,
            False,
        ),
        E(
            "busy",
            "busy",
            OCI.CommPilotExpressSRBusyModify,
            True,
            False,
            False,
        ),
        E(
            "unavailable",
            "unavailable",
            OCI.CommPilotExpressSRUnavailableModify,
            True,
            False,
            False,
        ),
    )
    #: str: *Required* userId
    user_id = Field(
        type=str,
        required=True,
    )
    #: str: *Optional* profile
    profile = Field(
        type=str,
        required=False,
    )
    #: OCI.CommPilotExpressSRAvailableInOfficeModify: *Optional* availableInOffice
    available_in_office = Field(
        type=OCI.CommPilotExpressSRAvailableInOfficeModify,
        required=False,
    )
    #: OCI.CommPilotExpressSRAvailableOutOfOfficeModify: *Optional* availableOutOfOffice
    available_out_of_office = Field(
        type=OCI.CommPilotExpressSRAvailableOutOfOfficeModify,
        required=False,
    )
    #: OCI.CommPilotExpressSRBusyModify: *Optional* busy
    busy = Field(
        type=OCI.CommPilotExpressSRBusyModify,
        required=False,
    )
    #: OCI.CommPilotExpressSRUnavailableModify: *Optional* unavailable
    unavailable = Field(
        type=OCI.CommPilotExpressSRUnavailableModify,
        required=False,
    )


# end
