""" Options: Date: 2025-05-04 21:58:44 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: QueueNodeWaitCallback.* #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 TwilioRequestBase(IReturn[str], IPost): call_sid: Optional[str] = None account_sid: Optional[str] = None from_: Optional[str] = field(metadata=config(field_name='from'), default=None) to: Optional[str] = None call_status: Optional[str] = None api_version: Optional[str] = None direction: Optional[str] = None forwarded_from: Optional[str] = None caller_name: Optional[str] = None parent_call_sid: Optional[str] = None stir_verstat: Optional[str] = None called: Optional[str] = None called_zip: Optional[str] = None called_city: Optional[str] = None called_state: Optional[str] = None called_country: Optional[str] = None caller: Optional[str] = None caller_city: Optional[str] = None caller_state: Optional[str] = None caller_zip: Optional[str] = None caller_country: Optional[str] = None from_city: Optional[str] = None from_state: Optional[str] = None from_zip: Optional[str] = None from_country: Optional[str] = None to_city: Optional[str] = None to_state: Optional[str] = None to_zip: Optional[str] = None to_country: Optional[str] = None message_sid: Optional[str] = None sms_id: Optional[str] = None messaging_service_sid: Optional[str] = None body: Optional[str] = None num_media: int = 0 media_content_type0: Optional[str] = None media_url0: Optional[str] = None media_content_type1: Optional[str] = None media_url1: Optional[str] = None media_content_type2: Optional[str] = None media_url2: Optional[str] = None index: int = 0 instance_sid: Optional[str] = None event_type: Optional[str] = None channel_sid: Optional[str] = None attributes: Optional[str] = None client_identity: Optional[str] = None media_content_type: Optional[str] = None media_sid: Optional[str] = None identity: Optional[str] = None digits: Optional[str] = None speech_result: Optional[str] = None confidence: float = 0.0 call_duration: int = 0 recording_url: Optional[str] = None recording_sid: Optional[str] = None recording_duration: int = 0 recording_status: Optional[str] = None transcription_sid: Optional[str] = None transcription_text: Optional[str] = None transcription_url: Optional[str] = None transcription_status: Optional[str] = None dial_call_status: Optional[str] = None dial_call_sid: Optional[str] = None dial_call_duration: float = 0.0 dial_bridged: bool = False queue_result: Optional[str] = None queue_sid: Optional[str] = None queue_time: int = 0 conference_sid: Optional[str] = None friendly_name: Optional[str] = None status_callback_event: Optional[str] = None muted: bool = False hold: bool = False end_conference_on_exit: bool = False start_conference_on_enter: bool = False event_name: Optional[str] = None assistant_sid: Optional[str] = None dialogue_sid: Optional[str] = None user_identifier: Optional[str] = None current_input: Optional[str] = None current_task: Optional[str] = None dialogue_payload_url: Optional[str] = None memory: Optional[str] = None channel: Optional[str] = None fax_sid: Optional[str] = None fax_status: Optional[str] = None num_pages: int = 0 media_url: Optional[str] = None error_code: Optional[str] = None error_message: Optional[str] = None @staticmethod def response_type(): return str class QueueWaitMusicModes(str, Enum): AUDIO = 'Audio' TEXT = 'Text' class SayVoices(str, Enum): MAN = 'Man' WOMAN = 'Woman' POLLY__MADS__DANISH__MALE = 'Polly_Mads_Danish_Male' POLLY__NAJA__DANISH__FEMALE = 'Polly_Naja_Danish_Female' POLLY__LOTTE__DUTCH__FEMALE = 'Polly_Lotte_Dutch_Female' POLLY__RUBEN__DUTCH__MALE = 'Polly_Ruben_Dutch_Male' POLLY__NICOLE__AUSTRALIAN__FEMALE = 'Polly_Nicole_Australian_Female' POLLY__RUSSELL__AUSTRALIAN__MALE = 'Polly_Russell_Australian_Male' POLLY__AMY__BRITISH__FEMALE = 'Polly_Amy_British_Female' POLLY__BRIAN__BRITISH__MALE = 'Polly_Brian_British_Male' POLLY__EMMA__BRITISH__FEMALE = 'Polly_Emma_British_Female' POLLY__RAVEENA__INDIAN__FEMALE = 'Polly_Raveena_Indian_Female' POLLY__IVY__U_S__FEMALE = 'Polly_Ivy_US_Female' POLLY__JOANNA__U_S__FEMALE = 'Polly_Joanna_US_Female' POLLY__JOEY__U_S__MALE = 'Polly_Joey_US_Male' POLLY__JUSTIN__U_S__MALE = 'Polly_Justin_US_Male' POLLY__KENDRA__U_S__FEMALE = 'Polly_Kendra_US_Female' POLLY__KIMBERLY__U_S__FEMALE = 'Polly_Kimberly_US_Female' POLLY__MATTHEW__U_S__MALE = 'Polly_Matthew_US_Male' POLLY__SALLI__U_S__FEMALE = 'Polly_Salli_US_Female' POLLY__GERAINT__WELSH__MALE = 'Polly_Geraint_Welsh_Male' POLLY__CELINE__FRENCH__FEMALE = 'Polly_Celine_French_Female' POLLY__MATHIEU__FRENCH__MALE = 'Polly_Mathieu_French_Male' POLLY__CHANTAL__FRENCH__CANADIAN__FEMALE = 'Polly_Chantal_French_Canadian_Female' POLLY__HANS__GERMAN__MALE = 'Polly_Hans_German_Male' POLLY__MARLENE__GERMAN__FEMALE = 'Polly_Marlene_German_Female' POLLY__VICKI__GERMAN__FEMALE = 'Polly_Vicki_German_Female' POLLY__DORA__ICELAND__FEMALE = 'Polly_Dora_Iceland_Female' POLLY__KARL__ICELAND__MALE = 'Polly_Karl_Iceland_Male' POLLY__CARLA__ITALIAN__FEMALE = 'Polly_Carla_Italian_Female' POLLY__GIORGIO__ITALIAN__MALE = 'Polly_Giorgio_Italian_Male' POLLY__MIZUKI__JAPANESE__FEMALE = 'Polly_Mizuki_Japanese_Female' POLLY__TAKUMI__JAPANESE__MALE = 'Polly_Takumi_Japanese_Male' POLLY__LIV__NORWEGIAN__FEMALE = 'Polly_Liv_Norwegian_Female' POLLY__JACEK__POLISH__MALE = 'Polly_Jacek_Polish_Male' POLLY__JAN__POLISH__FEMALE = 'Polly_Jan_Polish_Female' POLLY__EWA__POLISH__FEMALE = 'Polly_Ewa_Polish_Female' POLLY__MAJA__POLISH__FEMALE = 'Polly_Maja_Polish_Female' POLLY__RICARDO__PORTUGUESE__MALE = 'Polly_Ricardo_Portuguese_Male' POLLY__VITORIA__PORTUGUESE__FEMALE = 'Polly_Vitoria_Portuguese_Female' POLLY__CRISTIANO__PORTUGUESE__MALE = 'Polly_Cristiano_Portuguese_Male' POLLY__INESE__PORTUGUESE__FEMALE = 'Polly_Inese_Portuguese_Female' POLLY__CARMEN__ROMANIAN__FEMALE = 'Polly_Carmen_Romanian_Female' POLLY__MAXIM__RUSSIAN__MALE = 'Polly_Maxim_Russian_Male' POLLY__TATYANA__RUSSIAN__FEMALE = 'Polly_Tatyana_Russian_Female' POLLY__CONCHITA__SPANISH__FEMALE = 'Polly_Conchita_Spanish_Female' POLLY__ENRIQUE__SPANISH__MALE = 'Polly_Enrique_Spanish_Male' POLLY__MIGUEL__LATIN__AMERICAN__MALE = 'Polly_Miguel_Latin_American_Male' POLLY__PENELOPE__LATINA__AMERICAN__FEMALE = 'Polly_Penelope_Latina_American_Female' POLLY__ASTRID__SWEDISH__FEMALE = 'Polly_Astrid_Swedish_Female' POLLY__FILIZ__TURKISH__MALE = 'Polly_Filiz_Turkish_Male' POLLY__GWYNETH__WELSH__FEMALE = 'Polly_Gwyneth_Welsh_Female' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QueueWaitMusic: mode: Optional[QueueWaitMusicModes] = None audio_file: Optional[str] = None text: Optional[str] = None text_voice: Optional[SayVoices] = None num_times: int = 0 # @Route("/nodes/queue/wait-callback") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QueueNodeWaitCallback(TwilioRequestBase, IReturn[str]): wait_music: Optional[List[QueueWaitMusic]] = None queue_name: Optional[str] = None account_id: Optional[str] = None session_id: Optional[str] = None recording_ready: Optional[str] = None record_call: bool = False recorded_file: Optional[str] = None recorded_file_url: Optional[str] = None