""" Options: Date: 2025-05-04 20:34:40 Version: 8.71 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://team.evovoice.io #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: SyncPhoneNumbers.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EndpointInfo(EntityInfo): # @ApiMember(Description="The account ID this endpoint is associated with") account_id: Optional[str] = None """ The account ID this endpoint is associated with """ # @ApiMember(Description="The name of the account this endpoint is associated with") account_name: Optional[str] = None """ The name of the account this endpoint is associated with """ # @ApiMember(Description="The ID of the customer this endpoint is associated with") customer_id: Optional[str] = None """ The ID of the customer this endpoint is associated with """ # @ApiMember(Description="The name of the customer this endpoint is associated with") customer_name: Optional[str] = None """ The name of the customer this endpoint is associated with """ # @ApiMember(Description="The third party reference ID for the endpoint") reference_id: Optional[str] = None """ The third party reference ID for the endpoint """ # @ApiMember(Description="The breadcrumb to the customer for this endpoint") customer_breadcrumb: Optional[List[CustomerBreadcrumb]] = None """ The breadcrumb to the customer for this endpoint """ # @ApiMember(Description="The display name of the endpoint") display_name: Optional[str] = None """ The display name of the endpoint """ # @ApiMember(Description="The type of endpoint") type: Optional[EndpointTypes] = None """ The type of endpoint """ # @ApiMember(Description="Extra info for this endpoint (typically to show in grid)") extra_information: Optional[str] = None """ Extra info for this endpoint (typically to show in grid) """ # @ApiMember(Description="The ID of the flow to use for voice") flow_id: Optional[str] = None """ The ID of the flow to use for voice """ # @ApiMember(Description="The name of the flow to use for voice") flow_name: Optional[str] = None """ The name of the flow to use for voice """ # @ApiMember(Description="The params for the voice flow") flow_params: Optional[Struct] = None """ The params for the voice flow """ # @ApiMember(Description="Whether to use a single flow always or use scheduled flow system") flow_schedule: Optional[EndpointFlowSchedules] = None """ Whether to use a single flow always or use scheduled flow system """ # @ApiMember(Description="This endpoint's schedule") schedule: Optional[Schedule] = None """ This endpoint's schedule """ # @ApiMember(Description="The list of scheduled flows when using scheduling") scheduled_flows: Optional[List[ScheduledFlow]] = None """ The list of scheduled flows when using scheduling """ # @ApiMember(Description="Disable SMS") disable_sms: bool = False """ Disable SMS """ # @ApiMember(Description="Set this to true to prevent Evo Voice from overriding the 10DLC / SMS settings for this number") use_external10_dlc_campaign: bool = False """ Set this to true to prevent Evo Voice from overriding the 10DLC / SMS settings for this number """ # @ApiMember(Description="Is this a virtual phone number?") is_virtual_phone_number: bool = False """ Is this a virtual phone number? """ # @ApiMember(Description="Is caller ID verified for this virtual number?") is_caller_id_verified: bool = False """ Is caller ID verified for this virtual number? """ # @ApiMember(Description="The verification code for this number") caller_id_verification_code: Optional[str] = None """ The verification code for this number """ # @ApiMember(Description="The phone number") phone_number: Optional[str] = None """ The phone number """ # @ApiMember(Description="The Sid of the phone number") phone_number_sid: Optional[str] = None """ The Sid of the phone number """ # @ApiMember(Description="The caller ID Name (CNAM) for the phone number") caller_id_name: Optional[str] = None """ The caller ID Name (CNAM) for the phone number """ # @ApiMember(Description="The address SID associated with the phone number") address_sid: Optional[str] = None """ The address SID associated with the phone number """ # @ApiMember(Description="Do not touch this phone number - for BYOA accounts") do_not_touch_phone_number: bool = False """ Do not touch this phone number - for BYOA accounts """ # @ApiMember(Description="Is this number enrolled in a 10DLC messaging service campaign") is_enrolled_in10_dlc_service: bool = False """ Is this number enrolled in a 10DLC messaging service campaign """ # @ApiMember(Description="Whether we look up caller ID or not") enable_caller_id_lookup: bool = False """ Whether we look up caller ID or not """ # @ApiMember(Description="The email address of the user") user_email_address: Optional[str] = None """ The email address of the user """ # @ApiMember(Description="The Twilio Region for the SIP endpoint") sip_region: Optional[TwilioSipRegions] = None """ The Twilio Region for the SIP endpoint """ # @ApiMember(Description="The Twilio Sid of the credentials for Sip") sip_credential_sid: Optional[str] = None """ The Twilio Sid of the credentials for Sip """ # @ApiMember(Description="The Twilio SIP user name") sip_user_name: Optional[str] = None """ The Twilio SIP user name """ # @ApiMember(Description="The Twilio SIP password") sip_password: Optional[str] = None """ The Twilio SIP password """ # @ApiMember(Description="The SIP domain") sip_domain: Optional[str] = None """ The SIP domain """ # @ApiMember(Description="Is emergency calling enabled on this number?") enable_emergency_calling: bool = False """ Is emergency calling enabled on this number? """ # @ApiMember(Description="The SID of the emergency address for this number") emergency_address_sid: Optional[str] = None """ The SID of the emergency address for this number """ # @ApiMember(Description="The ID of the phone number to use for emergency dialing") emergency_phone_number_id: Optional[str] = None """ The ID of the phone number to use for emergency dialing """ # @ApiMember(Description="The current agent state of this user endpoint") agent_state: Optional[AgentStates] = None """ The current agent state of this user endpoint """ # @ApiMember(Description="The current agent state reason of this user endpoint") agent_state_reason: Optional[AgentStateReasons] = None """ The current agent state reason of this user endpoint """ # @ApiMember(Description="The mode for this user") user_mode: Optional[UserModes] = None """ The mode for this user """ # @ApiMember(Description="The ID of the file to use for voicemail greeting") voicemail_greeting_id: Optional[str] = None """ The ID of the file to use for voicemail greeting """ # @ApiMember(Description="The endpoint's data") data: Optional[Struct] = None """ The endpoint's data """ # @ApiMember(Description="The email address for email endpoints") email_address: Optional[str] = None """ The email address for email endpoints """ # @ApiMember(Description="The first name of the user (for user endpoints)") user_first_name: Optional[str] = None """ The first name of the user (for user endpoints) """ # @ApiMember(Description="The last name of the user (for user endpoints)") user_last_name: Optional[str] = None """ The last name of the user (for user endpoints) """ # @ApiMember(Description="The URL of an image for this user's avatar") avatar_url: Optional[str] = None """ The URL of an image for this user's avatar """ # @ApiMember(Description="Does this user have manager role?") manager_role: Optional[UserManagerRoles] = None """ Does this user have manager role? """ # @ApiMember(Description="The list of dashboard permissions for when the manager role is custom") dashboard_permissions: Optional[List[DashboardPermissions]] = None """ The list of dashboard permissions for when the manager role is custom """ # @ApiMember(Description="The type of visibility this user has to their own fields") my_field_permissions: Optional[UserDataFieldModes] = None """ The type of visibility this user has to their own fields """ # @ApiMember(Description="The type of visibility this user has to customer fields") customer_field_permissions: Optional[UserDataFieldModes] = None """ The type of visibility this user has to customer fields """ # @ApiMember(Description="The type of visibility this user has to other user fields") other_user_field_permissions: Optional[UserDataFieldModes] = None """ The type of visibility this user has to other user fields """ # @ApiMember(Description="The type of visibility this user has to other endpoint fields") other_endpoint_field_permissions: Optional[UserDataFieldModes] = None """ The type of visibility this user has to other endpoint fields """ # @ApiMember(Description="The name of this endpoint (for bots etc.)") name: Optional[str] = None """ The name of this endpoint (for bots etc.) """ # @ApiMember(Description="The list of tags for this endpoint") tags: Optional[List[Tag]] = None """ The list of tags for this endpoint """ # @ApiMember(Description="The list of action URLs") action_urls: Optional[List[EndpointActionUrl]] = None """ The list of action URLs """ # @ApiMember(Description="The list of members in this team") team_member_ids: Optional[List[str]] = None """ The list of members in this team """ # @ApiMember(Description="Visibility of this user/team in contact lists") contact_list_visibility: Optional[CustomerVisibility] = None """ Visibility of this user/team in contact lists """ # @ApiMember(Description="The list of contacts personal to this user") contacts: Optional[List[EndpointContact]] = None """ The list of contacts personal to this user """ # @ApiMember(Description="The documo ID for this number") documo_id: Optional[str] = None """ The documo ID for this number """ # @ApiMember(Description="Integration data for this endpoint") integration_data: Optional[EntityIntegrationData] = None """ Integration data for this endpoint """ # @ApiMember(Description="Settings for third party phone system") third_party_phone_system_settings: Optional[ThirdPartyPhoneSystemSettings] = None """ Settings for third party phone system """ # @ApiMember(Description="Should this user override the parent customer's app settings") override_app_settings: bool = False """ Should this user override the parent customer's app settings """ # @ApiMember(Description="App / Portal settings for this user") app_settings: Optional[AppSettings] = None """ App / Portal settings for this user """ # @ApiMember(Description="Configuration for the AI assistant") assistant_settings: Optional[AssistantSettings] = None """ Configuration for the AI assistant """ # @ApiMember(Description="Configuration for the embed") embed_settings: Optional[EmbedSettings] = None """ Configuration for the embed """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SyncPhoneNumbersResponse: new_phone_numbers: Optional[List[EndpointInfo]] = None updated_phone_numbers: Optional[List[EndpointInfo]] = None # @Route("/phone-numbers/sync", "POST") # @Api(Description="Syncs list of phone numbers with Twilio detecting any newly ported numbers, status changes, etc.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SyncPhoneNumbers(IReturn[SyncPhoneNumbersResponse], IPost): """ Syncs list of phone numbers with Twilio detecting any newly ported numbers, status changes, etc. """ # @ApiMember(Description="The account ID you want to sync") account_id: Optional[str] = None """ The account ID you want to sync """