o
    f>hƌ                    @   sd  d Z ddlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZG d7d8 d8eZG d9d: d:eZG d;d< d<eZG d=d> d>eZ G d?d@ d@eZ!G dAdB dBeZ"G dCdD dDeZ#G dEdF dFeZ$G dGdH dHeZ%G dIdJ dJeZ&G dKdL dLeZ'G dMdN dNeZ(G dOdP dPeZ)G dQdR dReZ*G dSdT dTeZ+G dUdV dVeZ,G dWdX dXeZ-G dYdZ dZeZ.G d[d\ d\eZ/G d]d^ d^eZ0G d_d` d`eZ1G dadb dbeZ2G dcdd ddeZ3G dedf dfeZ4G dgdh dheZ5G didj djeZ6G dkdl dleZ7dmS )nza
This code was generated by
\ / _    _  _|   _  _
 | (_)\/(_)(_|\/| |(/_  v1.0.0
      /       /
    )TwiMLc                       s  e Zd ZdZ fddZd-ddZ																			d.ddZd	d
 Z							d/ddZ																		d0ddZ	dd Z
dd Zd1ddZd2ddZ				d3ddZ												d4ddZd1ddZd1ddZd3dd Z					d5d!d"Z																		d0d#d$Z					d5d%d&Zd-d'd(Zd)d* Zd-d+d,Z  ZS )6VoiceResponsez<Response> TwiML for Voicec                        t t| jdi | d| _d S )NResponse )superr   __init__nameselfkwargs	__class__r   N/var/www/html/venv/lib/python3.10/site-packages/twilio/twiml/voice_response.pyr         
zVoiceResponse.__init__Nc                 K      |  td||d|S )z
        Create a <Connect> element

        :param action: Action URL
        :param method: Action URL method
        :param kwargs: additional attributes

        :returns: <Connect> element
        actionmethodNr   )nestConnectr   r   r   r   r   r   r   connect      
zVoiceResponse.connectc                 K   s   |  tdi d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|d|d||S )a  
        Create a <Dial> element

        :param number: Phone number to dial
        :param action: Action URL
        :param method: Action URL method
        :param timeout: Time to wait for answer
        :param hangup_on_star: Hangup call on star press
        :param time_limit: Max time length
        :param caller_id: Caller ID to display
        :param record: Record the call
        :param trim: Trim the recording
        :param recording_status_callback: Recording status callback URL
        :param recording_status_callback_method: Recording status callback URL method
        :param recording_status_callback_event: Recording status callback events
        :param answer_on_bridge: Preserve the ringing behavior of the inbound call until the Dialed call picks up
        :param ring_tone: Ringtone allows you to override the ringback tone that Twilio will play back to the caller while executing the Dial
        :param recording_track: To indicate which audio track should be recorded
        :param sequential: Used to determine if child TwiML nouns should be dialed in order, one after the other (sequential) or dial all at once (parallel). Default is false, parallel
        :param refer_url: Webhook that will receive future SIP REFER requests
        :param refer_method: The HTTP method to use for the refer Webhook
        :param events: Subscription to events
        :param kwargs: additional attributes

        :returns: <Dial> element
        numberr   r   timeouthangup_on_star
time_limit	caller_idrecordtrimrecording_status_callback recording_status_callback_methodrecording_status_callback_eventanswer_on_bridge	ring_tonerecording_track
sequential	refer_urlrefer_methodeventsNr   )r   Dial)r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r   r   r   r   dial!   sT   1	
zVoiceResponse.dialc                 K      |  tdi |S )zy
        Create a <Echo> element

        :param kwargs: additional attributes

        :returns: <Echo> element
        Nr   )r   Echor
   r   r   r   echok      zVoiceResponse.echoc           	      K   s$   |  td|||||||d|S )a  
        Create a <Enqueue> element

        :param name: Friendly name
        :param action: Action URL
        :param max_queue_size: Maximum size of queue
        :param method: Action URL method
        :param wait_url: Wait URL
        :param wait_url_method: Wait URL method
        :param workflow_sid: TaskRouter Workflow SID
        :param kwargs: additional attributes

        :returns: <Enqueue> element
        )r	   r   max_queue_sizer   wait_urlwait_url_methodworkflow_sidNr   )r   Enqueue)	r   r	   r   r1   r   r2   r3   r4   r   r   r   r   enqueueu   s   zVoiceResponse.enqueuec                 K      |  tdi d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|d||S )a  
        Create a <Gather> element

        :param input: Input type Twilio should accept
        :param action: Action URL
        :param method: Action URL method
        :param timeout: Time to wait to gather input
        :param speech_timeout: Time to wait to gather speech input and it should be either auto or a positive integer.
        :param max_speech_time: Max allowed time for speech input
        :param profanity_filter: Profanity Filter on speech
        :param finish_on_key: Finish gather on key
        :param num_digits: Number of digits to collect
        :param partial_result_callback: Partial result callback URL
        :param partial_result_callback_method: Partial result callback URL method
        :param language: Language to use
        :param hints: Speech recognition hints
        :param barge_in: Stop playing media upon speech
        :param debug: Allow debug for gather
        :param action_on_empty_result: Force webhook to the action URL event if there is no input
        :param speech_model: Specify the model that is best suited for your use case
        :param enhanced: Use enhanced speech model
        :param kwargs: additional attributes

        :returns: <Gather> element
        inputr   r   r   speech_timeoutmax_speech_timeprofanity_filterfinish_on_key
num_digitspartial_result_callbackpartial_result_callback_methodlanguagehintsbarge_indebugaction_on_empty_resultspeech_modelenhancedNr   )r   Gather)r   r8   r   r   r   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   r   r   r   r   gather   P   /	
zVoiceResponse.gatherc                 K   r-   )z}
        Create a <Hangup> element

        :param kwargs: additional attributes

        :returns: <Hangup> element
        Nr   )r   Hangupr
   r   r   r   hangup   r0   zVoiceResponse.hangupc                 K   r-   )z{
        Create a <Leave> element

        :param kwargs: additional attributes

        :returns: <Leave> element
        Nr   )r   Leaver
   r   r   r   leave   r0   zVoiceResponse.leavec                 K      |  tdd|i|S z
        Create a <Pause> element

        :param length: Length in seconds to pause
        :param kwargs: additional attributes

        :returns: <Pause> element
        lengthNr   r   Pauser   rP   r   r   r   r   pause      	zVoiceResponse.pausec                 K      |  td|||d|S z
        Create a <Play> element

        :param url: Media URL
        :param loop: Times to loop media
        :param digits: Play DTMF tones for digits
        :param kwargs: additional attributes

        :returns: <Play> element
        )urlloopdigitsNr   r   Playr   rX   rY   rZ   r   r   r   r   play     zVoiceResponse.playc              	   K       |  t|f||||d|S a]  
        Create a <Queue> element

        :param name: Queue name
        :param url: Action URL
        :param method: Action URL method
        :param reservation_sid: TaskRouter Reservation SID
        :param post_work_activity_sid: TaskRouter Activity SID
        :param kwargs: additional attributes

        :returns: <Queue> element
        )rX   r   reservation_sidpost_work_activity_sidr   Queuer   r	   rX   r   rb   rc   r   r   r   r   queue     zVoiceResponse.queuec                 K   s.   |  td|||||||||	|
||d|S )a  
        Create a <Record> element

        :param action: Action URL
        :param method: Action URL method
        :param timeout: Timeout to begin recording
        :param finish_on_key: Finish recording on key
        :param max_length: Max time to record in seconds
        :param play_beep: Play beep
        :param trim: Trim the recording
        :param recording_status_callback: Status callback URL
        :param recording_status_callback_method: Status callback URL method
        :param recording_status_callback_event: Recording status callback events
        :param transcribe: Transcribe the recording
        :param transcribe_callback: Transcribe callback URL
        :param kwargs: additional attributes

        :returns: <Record> element
        )r   r   r   r<   
max_length	play_beepr    r!   r"   r#   
transcribetranscribe_callbackNr   )r   Record)r   r   r   r   r<   ri   rj   r    r!   r"   r#   rk   rl   r   r   r   r   r   .  s$   #zVoiceResponse.recordc                 K      |  t|fd|i|S )z
        Create a <Redirect> element

        :param url: Redirect URL
        :param method: Redirect URL method
        :param kwargs: additional attributes

        :returns: <Redirect> element
        r   )r   Redirect)r   rX   r   r   r   r   r   redirectc  r   zVoiceResponse.redirectc                 K   rN   )z
        Create a <Reject> element

        :param reason: Rejection reason
        :param kwargs: additional attributes

        :returns: <Reject> element
        reasonNr   )r   Reject)r   rq   r   r   r   r   rejecto  rU   zVoiceResponse.rejectc              	   K      |  td||||d|S a  
        Create a <Say> element

        :param message: Message to say
        :param voice: Voice to use
        :param loop: Times to loop message
        :param language: Message language
        :param kwargs: additional attributes

        :returns: <Say> element
        )messagevoicerY   r@   Nr   r   Sayr   rv   rw   rY   r@   r   r   r   r   sayz     zVoiceResponse.sayc              
   K   s"   |  t|f|||||d|S )ay  
        Create a <Sms> element

        :param message: Message body
        :param to: Number to send message to
        :param from: Number to send message from
        :param action: Action URL
        :param method: Action URL method
        :param status_callback: Status callback URL
        :param kwargs: additional attributes

        :returns: <Sms> element
        )tofrom_r   r   status_callback)r   Sms)r   rv   r}   r~   r   r   r   r   r   r   r   sms  s   zVoiceResponse.smsc                 K   r7   )a  
        Create a <Pay> element

        :param input: Input type Twilio should accept
        :param action: Action URL
        :param bank_account_type: Bank account type for ach transactions. If set, payment method attribute must be provided and value should be set to ach-debit. defaults to consumer-checking
        :param status_callback: Status callback URL
        :param status_callback_method: Status callback method
        :param timeout: Time to wait to gather input
        :param max_attempts: Maximum number of allowed retries when gathering input
        :param security_code: Prompt for security code
        :param postal_code: Prompt for postal code and it should be true/false or default postal code
        :param min_postal_code_length: Prompt for minimum postal code length
        :param payment_connector: Unique name for payment connector
        :param payment_method: Payment method to be used. defaults to credit-card
        :param token_type: Type of token
        :param charge_amount: Amount to process. If value is greater than 0 then make the payment else create a payment token
        :param currency: Currency of the amount attribute
        :param description: Details regarding the payment
        :param valid_card_types: Comma separated accepted card types
        :param language: Language to use
        :param kwargs: additional attributes

        :returns: <Pay> element
        r8   r   bank_account_typer   status_callback_methodr   max_attemptssecurity_codepostal_codemin_postal_code_lengthpayment_connectorpayment_method
token_typecharge_amountcurrencydescriptionvalid_card_typesr@   Nr   )r   Pay)r   r8   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r@   r   r   r   r   pay  rI   zVoiceResponse.payc              
   K       |  td|||||d|S a  
        Create a <Prompt> element

        :param for_: Name of the payment source data element
        :param error_type: Type of error
        :param card_type: Type of the credit card
        :param attempt: Current attempt count
        :param require_matching_inputs: Require customer to input requested information twice and verify matching.
        :param kwargs: additional attributes

        :returns: <Prompt> element
        )for_
error_type	card_typeattemptrequire_matching_inputsNr   r   Promptr   r   r   r   r   r   r   r   r   r   prompt     zVoiceResponse.promptc                 K   r   )z
        Create a <Start> element

        :param action: Action URL
        :param method: Action URL method
        :param kwargs: additional attributes

        :returns: <Start> element
        r   Nr   )r   Startr   r   r   r   start  r   zVoiceResponse.startc                 K   r-   )zy
        Create a <Stop> element

        :param kwargs: additional attributes

        :returns: <Stop> element
        Nr   )r   Stopr
   r   r   r   stop   r0   zVoiceResponse.stopc                 K   r   )z
        Create a <Refer> element

        :param action: Action URL
        :param method: Action URL method
        :param kwargs: additional attributes

        :returns: <Refer> element
        r   Nr   )r   Referr   r   r   r   refer*  r   zVoiceResponse.referNN)NNNNNNNNNNNNNNNNNNN)NNNNNNN)NNNNNNNNNNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNN)__name__
__module____qualname____doc__r   r   r,   r/   r6   rH   rK   rM   rT   r^   rg   r   rp   rs   r{   r   r   r   r   r   r   __classcell__r   r   r   r   r      s    

J
(
G




"

5


%
I

 
r   c                       s(   e Zd ZdZ fddZdd Z  ZS )r   z<Refer> TwiML Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r   :  r   zRefer.__init__c                 K      |  t|fi |S )z
        Create a <Sip> element

        :param sip_url: SIP URL
        :param kwargs: additional attributes

        :returns: <Sip> element
        )r   ReferSipr   sip_urlr   r   r   r   sip>     	z	Refer.sip)r   r   r   r   r   r   r   r   r   r   r   r   7  s    r   c                           e Zd ZdZ fddZ  ZS )r   z <Sip> TwiML Noun used in <Refer>c                    &   t t| jdi | d| _|| _d S NSipr   )r   r   r   r	   valuer   r   r   r   r   M     
zReferSip.__init__r   r   r   r   r   r   r   r   r   r   r   J      r   c                       p   e Zd ZdZ fddZ						dddZ					dddZ														dd	d
Z  ZS )r   z<Stop> TwiML Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r   V  r   zStop.__init__Nc                 K   "   |  td||||||d|S a  
        Create a <Stream> element

        :param name: Friendly name given to the Stream
        :param connector_name: Unique name for Stream Connector
        :param url: URL of the remote service where the Stream is routed
        :param track: Track to be streamed to remote service
        :param status_callback: Status Callback URL
        :param status_callback_method: Status Callback URL method
        :param kwargs: additional attributes

        :returns: <Stream> element
        )r	   connector_namerX   trackr   r   Nr   r   Streamr   r	   r   rX   r   r   r   r   r   r   r   streamZ     zStop.streamc              
   K   r   a  
        Create a <Siprec> element

        :param name: Friendly name given to SIPREC
        :param connector_name: Unique name for Connector
        :param track: Track to be streamed to remote service
        :param status_callback: Status Callback URL
        :param status_callback_method: Status Callback URL method
        :param kwargs: additional attributes

        :returns: <Siprec> element
        )r	   r   r   r   r   Nr   r   Siprecr   r	   r   r   r   r   r   r   r   r   siprec}  r   zStop.siprecc                 K   2   |  td|||||||||	|
||||d|S a  
        Create a <Transcription> element

        :param name: Friendly name given to the Transcription
        :param track: Track to be analyze by the provider
        :param status_callback_url: Status Callback URL
        :param status_callback_method: Status Callback URL method
        :param inbound_track_label: Friendly name given to the Inbound Track
        :param outbound_track_label: Friendly name given to the Outbound Track Label
        :param partial_results: Indicates if partial results are going to be send to the customer
        :param language_code: Language Code used by the transcription engine
        :param transcription_engine: Transcription Engine to be used
        :param profanity_filter: Enable Profanity Filter
        :param speech_model: Speech Model used by the transcription engine
        :param hints: Hints to be provided to the transcription engine
        :param enable_automatic_punctuation: Enable Automatic Punctuation
        :param intelligence_service: The SID or the unique name of the Intelligence Service to be used
        :param kwargs: additional attributes

        :returns: <Transcription> element
        )r	   r   status_callback_urlr   inbound_track_labeloutbound_track_labelpartial_resultslanguage_codetranscription_enginer;   rE   rA   enable_automatic_punctuationintelligence_serviceNr   r   Transcriptionr   r	   r   r   r   r   r   r   r   r   r;   rE   rA   r   r   r   r   r   r   transcription  (   'zStop.transcriptionNNNNNNr   NNNNNNNNNNNNNN	r   r   r   r   r   r   r   r   r   r   r   r   r   r   S  >    
%
"r   c                       4   e Zd ZdZ fddZd	ddZd	ddZ  ZS )
r   z<Transcription> TwiML Nounc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r     r   zTranscription.__init__Nc                 K   r   z
        Create a <Config> element

        :param name: The name of the custom config
        :param value: The value of the custom config
        :param kwargs: additional attributes

        :returns: <Config> element
        r	   r   Nr   r   Configr   r	   r   r   r   r   r   config  r   zTranscription.configc                 K   r   z
        Create a <Parameter> element

        :param name: The name of the custom parameter
        :param value: The value of the custom parameter
        :param kwargs: additional attributes

        :returns: <Parameter> element
        r   Nr   r   	Parameterr   r   r   r   	parameter  r   zTranscription.parameterr   r   r   r   r   r   r   r   r   r   r   r   r   r     
    
r   c                       r   )r   z<Parameter> TwiML Nounc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r     r   zParameter.__init__r   r   r   r   r   r     r   r   c                       r   )r   z<Config> TwiML Nounc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r     r   zConfig.__init__r   r   r   r   r   r     r   r   c                       *   e Zd ZdZ fddZdddZ  ZS )r   z<Siprec> TwiML Nounc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r     r   zSiprec.__init__Nc                 K   r   r   r   r   r   r   r   r     r   zSiprec.parameterr   r   r   r   r   r   r   r   r   r   r   r   r   	      r   c                       r   )r   z<Stream> TwiML Nounc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r      r   zStream.__init__Nc                 K   r   r   r   r   r   r   r   r   $  r   zStream.parameterr   r   r   r   r   r   r     r   r   c                       r   )r   z<Start> TwiML Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r   4  r   zStart.__init__Nc                 K   r   r   r   r   r   r   r   r   8  r   zStart.streamc              
   K   r   r   r   r   r   r   r   r   [  r   zStart.siprecc                 K   r   r   r   r   r   r   r   r   {  r   zStart.transcriptionr   r   r   r   r   r   r   r   r   1  r   r   c                       >   e Zd ZdZ fddZdddZdddZdd	d
Z  ZS )r   z<Prompt> Twiml Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r     r   zPrompt.__init__Nc              	   K   rt   ru   rx   rz   r   r   r   r{     r|   z
Prompt.sayc                 K   rV   rW   r[   r]   r   r   r   r^     r_   zPrompt.playc                 K   rN   rO   rQ   rS   r   r   r   rT     rU   zPrompt.pauser   r   r   )	r   r   r   r   r   r{   r^   rT   r   r   r   r   r   r     s    

r   c                       r   )rR   z<Pause> TwiML Verbc                    r   )NrR   r   )r   rR   r   r	   r
   r   r   r   r     r   zPause.__init__r   r   r   r   r   rR     r   rR   c                       s"   e Zd ZdZd fdd	Z  ZS )r\   z<Play> TwiML VerbNc                    .   t t| jdi | d| _|r|| _d S d S )Nr\   r   )r   r\   r   r	   r   r   rX   r   r   r   r   r     
   
zPlay.__init__r   r   r   r   r   r   r\     s    r\   c                          e Zd ZdZd fdd	ZdddZdddZdd	d
ZdddZdddZ	dddZ
dddZdddZdddZdddZ  ZS )ry   z<Say> TwiML VerbNc                    r   )Nry   r   )r   ry   r   r	   r   r   rv   r   r   r   r   r     r   zSay.__init__c                 K   r   a4  
        Create a <Break> element

        :param strength: Set a pause based on strength
        :param time: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms
        :param kwargs: additional attributes

        :returns: <Break> element
        )strengthtimeNr   r   	SsmlBreakr   r   r   r   r   r   r   break_  r   z
Say.break_c                 K   r   z
        Create a <Emphasis> element

        :param words: Words to emphasize
        :param level: Specify the degree of emphasis
        :param kwargs: additional attributes

        :returns: <Emphasis> element
        )wordslevelNr   r   SsmlEmphasisr   r   r   r   r   r   r   emphasis  r   zSay.emphasisc                 K   r   z
        Create a <Lang> element

        :param words: Words to speak
        :param xml:lang: Specify the language
        :param kwargs: additional attributes

        :returns: <Lang> element
        )r   xml_langNr   r   SsmlLangr   r   r  r   r   r   r   lang  r   zSay.langc                 K   rN   z
        Create a <P> element

        :param words: Words to speak
        :param kwargs: additional attributes

        :returns: <P> element
        r   Nr   r   SsmlPr   r   r   r   r   r   p&  rU   zSay.pc                 K      |  t|f||d|S a  
        Create a <Phoneme> element

        :param words: Words to speak
        :param alphabet: Specify the phonetic alphabet
        :param ph: Specifiy the phonetic symbols for pronunciation
        :param kwargs: additional attributes

        :returns: <Phoneme> element
        )alphabetphr   SsmlPhonemer   r   r  r  r   r   r   r   phoneme1  r_   zSay.phonemec              	   K   rt   a  
        Create a <Prosody> element

        :param words: Words to speak
        :param volume: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB
        :param rate: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n%
        :param pitch: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n%
        :param kwargs: additional attributes

        :returns: <Prosody> element
        )r   volumeratepitchNr   r   SsmlProsodyr   r   r  r  r  r   r   r   r   prosody>  r|   zSay.prosodyc                 K   rN   z
        Create a <S> element

        :param words: Words to speak
        :param kwargs: additional attributes

        :returns: <S> element
        r   Nr   r   SsmlSr
  r   r   r   sN  rU   zSay.sc                 K   r  aD  
        Create a <Say-As> element

        :param words: Words to be interpreted
        :param interpret-as: Specify the type of words are spoken
        :param format: Specify the format of the date when interpret-as is set to date
        :param kwargs: additional attributes

        :returns: <Say-As> element
        )interpret_asformatr   	SsmlSayAsr   r   r!  r"  r   r   r   r   say_asY     z
Say.say_asc                 K   rn   a  
        Create a <Sub> element

        :param words: Words to be substituted
        :param alias: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation
        :param kwargs: additional attributes

        :returns: <Sub> element
        aliasr   SsmlSubr   r   r)  r   r   r   r   subh  r   zSay.subc                 K   r   u  
        Create a <W> element

        :param words: Words to speak
        :param role: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning
        :param kwargs: additional attributes

        :returns: <W> element
        )r   roleNr   r   SsmlWr   r   r/  r   r   r   r   wt  r   zSay.wr   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r&  r-  r3  r   r   r   r   r   ry         








ry   c                       s^   e Zd ZdZd fdd	ZdddZdddZdd	d
ZdddZdddZ	dddZ
  ZS )r1  z>Improving Pronunciation by Specifying Parts of Speech in <Say>Nc                    r   )Nr3  r   )r   r1  r   r	   r   r
  r   r   r   r     r   zSsmlW.__init__c                 K   r   r   r   r   r   r   r   r     r   zSsmlW.break_c                 K   r   r   r   r   r   r   r   r     r   zSsmlW.emphasisc                 K   r  r  r  r  r   r   r   r    r_   zSsmlW.phonemec              	   K   rt   r  r  r  r   r   r   r    r|   zSsmlW.prosodyc                 K   r  r   r#  r%  r   r   r   r&    r'  zSsmlW.say_asc                 K   rn   r(  r*  r,  r   r   r   r-    r   z	SsmlW.subr   r   r   )r   r   r   r   r   r   r   r  r  r&  r-  r   r   r   r   r   r1    s    




r1  c                       r   )r+  z/Pronouncing Acronyms and Abbreviations in <Say>c                    r   )Nr-  r   )r   r+  r   r	   r   r
  r   r   r   r     r   zSsmlSub.__init__r   r   r   r   r   r+    r   r+  c                       r   )r$  z:Controlling How Special Types of Words Are Spoken in <Say>c                    r   )Nzsay-asr   )r   r$  r   r	   r   r
  r   r   r   r     r   zSsmlSayAs.__init__r   r   r   r   r   r$    r   r$  c                       r   )r  z4Controling Volume, Speaking Rate, and Pitch in <Say>Nc                    r   )Nr  r   )r   r  r   r	   r   r
  r   r   r   r     r   zSsmlProsody.__init__c                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.break_c                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.emphasisc                 K   r   r  r  r  r   r   r   r    r   zSsmlProsody.langc                 K   rN   r  r  r
  r   r   r   r    rU   zSsmlProsody.pc                 K   r  r  r  r  r   r   r   r  %  r_   zSsmlProsody.phonemec              	   K   rt   r  r  r  r   r   r   r  2  r|   zSsmlProsody.prosodyc                 K   rN   r  r  r
  r   r   r   r  B  rU   zSsmlProsody.sc                 K   r  r   r#  r%  r   r   r   r&  M  r'  zSsmlProsody.say_asc                 K   rn   r(  r*  r,  r   r   r   r-  \  r   zSsmlProsody.subc                 K   r   r.  r0  r2  r   r   r   r3  h  r   zSsmlProsody.wr   r   r   r4  r   r   r   r   r    r5  r  c                       r   e Zd ZdZd fdd	ZdddZdddZdd	d
ZdddZdddZ	dddZ
dddZdddZ  ZS )r  z)Adding A Pause Between Sentences in <Say>Nc                    r   )Nr  r   )r   r  r   r	   r   r
  r   r   r   r   x  r   zSsmlS.__init__c                 K   r   r   r   r   r   r   r   r   ~  r   zSsmlS.break_c                 K   r   r   r   r   r   r   r   r     r   zSsmlS.emphasisc                 K   r   r  r  r  r   r   r   r    r   z
SsmlS.langc                 K   r  r  r  r  r   r   r   r    r_   zSsmlS.phonemec              	   K   rt   r  r  r  r   r   r   r    r|   zSsmlS.prosodyc                 K   r  r   r#  r%  r   r   r   r&    r'  zSsmlS.say_asc                 K   rn   r(  r*  r,  r   r   r   r-    r   z	SsmlS.subc                 K   r   r.  r0  r2  r   r   r   r3    r   zSsmlS.wr   r   r   r   r   r   r   r   r   r   r  r  r  r&  r-  r3  r   r   r   r   r   r  u      






r  c                       r   )r  z%Using Phonetic Pronunciation in <Say>c                    r   )Nr  r   )r   r  r   r	   r   r
  r   r   r   r     r   zSsmlPhoneme.__init__r   r   r   r   r   r    r   r  c                       r   )r  z7Specifying Another Language for Specific Words in <Say>Nc                    r   )Nr  r   )r   r  r   r	   r   r
  r   r   r   r     r   zSsmlLang.__init__c                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.break_c                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.emphasisc                 K   r   r  r  r  r   r   r   r    r   zSsmlLang.langc                 K   rN   r  r  r
  r   r   r   r    rU   z
SsmlLang.pc                 K   r  r  r  r  r   r   r   r  (  r_   zSsmlLang.phonemec              	   K   rt   r  r  r  r   r   r   r  5  r|   zSsmlLang.prosodyc                 K   rN   r  r  r
  r   r   r   r  E  rU   z
SsmlLang.sc                 K   r  r   r#  r%  r   r   r   r&  P  r'  zSsmlLang.say_asc                 K   rn   r(  r*  r,  r   r   r   r-  _  r   zSsmlLang.subc                 K   r   r.  r0  r2  r   r   r   r3  k  r   z
SsmlLang.wr   r   r   r4  r   r   r   r   r    r5  r  c                       s|   e Zd ZdZd fdd	ZdddZdddZdd	d
ZdddZdddZ	dddZ
dddZdddZdddZ  ZS )r	  z*Adding a Pause Between Paragraphs in <Say>Nc                    r   )Nr  r   )r   r	  r   r	   r   r
  r   r   r   r   {  r   zSsmlP.__init__c                 K   r   r   r   r   r   r   r   r     r   zSsmlP.break_c                 K   r   r   r   r   r   r   r   r     r   zSsmlP.emphasisc                 K   r   r  r  r  r   r   r   r    r   z
SsmlP.langc                 K   r  r  r  r  r   r   r   r    r_   zSsmlP.phonemec              	   K   rt   r  r  r  r   r   r   r    r|   zSsmlP.prosodyc                 K   rN   r  r  r
  r   r   r   r    rU   zSsmlP.sc                 K   r  r   r#  r%  r   r   r   r&    r'  zSsmlP.say_asc                 K   rn   r(  r*  r,  r   r   r   r-    r   z	SsmlP.subc                 K   r   r.  r0  r2  r   r   r   r3    r   zSsmlP.wr   r   r   )r   r   r   r   r   r   r   r  r  r  r  r&  r-  r3  r   r   r   r   r   r	  x  s    







r	  c                       r6  )r   zEmphasizing Words in <Say>Nc                    r   )Nr   r   )r   r   r   r	   r   r
  r   r   r   r     r   zSsmlEmphasis.__init__c                 K   r   r   r   r   r   r   r   r     r   zSsmlEmphasis.break_c                 K   r   r   r   r   r   r   r   r   
  r   zSsmlEmphasis.emphasisc                 K   r   r  r  r  r   r   r   r    r   zSsmlEmphasis.langc                 K   r  r  r  r  r   r   r   r  "  r_   zSsmlEmphasis.phonemec              	   K   rt   r  r  r  r   r   r   r  /  r|   zSsmlEmphasis.prosodyc                 K   r  r   r#  r%  r   r   r   r&  ?  r'  zSsmlEmphasis.say_asc                 K   rn   r(  r*  r,  r   r   r   r-  N  r   zSsmlEmphasis.subc                 K   r   r.  r0  r2  r   r   r   r3  Z  r   zSsmlEmphasis.wr   r   r   r7  r   r   r   r   r     r8  r   c                       r   )r   zAdding a Pause in <Say>c                    r   )Nbreakr   )r   r   r   r	   r
   r   r   r   r   j  r   zSsmlBreak.__init__r   r   r   r   r   r   g  r   r   c                       >   e Zd ZdZ fddZ					d	ddZd
ddZ  ZS )r   z<Pay> Twiml Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r   r  r   zPay.__init__Nc              
   K   r   r   r   r   r   r   r   r   v  r   z
Pay.promptc                 K   r   r   r   r   r   r   r   r     r   zPay.parameterr   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   o      
 r   c                       r   )r   z<Sms> TwiML Nounc                    r   )Nr   r   )r   r   r   r	   r   r   r   r   r   r     r   zSms.__init__r   r   r   r   r   r     r   r   c                       r   )rr   z<Reject> TwiML Verbc                    r   )Nrr   r   )r   rr   r   r	   r
   r   r   r   r     r   zReject.__init__Nc                 K   r   r   r   r   r   r   r   r     r   zReject.parameterr   r   r   r   r   r   rr     r   rr   c                       r   )ro   z<Redirect> TwiML Verbc                    r   )Nro   r   )r   ro   r   r	   r   r   r   r   r   r     r   zRedirect.__init__r   r   r   r   r   ro     r   ro   c                       r   )rm   z<Record> TwiML Verbc                    r   )Nrm   r   )r   rm   r   r	   r
   r   r   r   r     r   zRecord.__init__r   r   r   r   r   rm     r   rm   c                       r   )re   z<Queue> TwiML Nounc                    r   )Nre   r   )r   re   r   r	   r   r   r	   r   r   r   r   r     r   zQueue.__init__r   r   r   r   r   re     r   re   c                       r   )rL   z<Leave> TwiML Verbc                    r   )NrL   r   )r   rL   r   r	   r
   r   r   r   r     r   zLeave.__init__r   r   r   r   r   rL     r   rL   c                       r   )rJ   z<Hangup> TwiML Verbc                    r   )NrJ   r   )r   rJ   r   r	   r
   r   r   r   r     r   zHangup.__init__Nc                 K   r   r   r   r   r   r   r   r     r   zHangup.parameterr   r   r   r   r   r   rJ     r   rJ   c                       r   )rG   z<Gather> TwiML Verbc                    r   )NrG   r   )r   rG   r   r	   r
   r   r   r   r     r   zGather.__init__Nc              	   K   rt   ru   rx   rz   r   r   r   r{     r|   z
Gather.sayc                 K   rN   rO   rQ   rS   r   r   r   rT     rU   zGather.pausec                 K   rV   rW   r[   r]   r   r   r   r^     r_   zGather.playr   r   r   )	r   r   r   r   r   r{   rT   r^   r   r   r   r   r   rG     s    

rG   c                       s,   e Zd ZdZd fdd	ZdddZ  ZS )	r5   z<Enqueue> TwiML NounNc                    r   )Nr5   r   )r   r5   r   r	   r   r<  r   r   r   r   )  r   zEnqueue.__init__c                 K   r  )a  
        Create a <Task> element

        :param body: TaskRouter task attributes
        :param priority: Task priority
        :param timeout: Timeout associated with task
        :param kwargs: additional attributes

        :returns: <Task> element
        )priorityr   )r   Task)r   bodyr=  r   r   r   r   r   task/  r_   zEnqueue.taskr   r   )r   r   r   r   r   r@  r   r   r   r   r   r5   &  s    r5   c                       r   )r>  z<Task> TwiML Nounc                    r   )Nr>  r   )r   r>  r   r	   r   )r   r?  r   r   r   r   r   @  r   zTask.__init__r   r   r   r   r   r>  =  r   r>  c                       r   )r.   z<Echo> TwiML Verbc                    r   )Nr.   r   )r   r.   r   r	   r
   r   r   r   r   I  r   zEcho.__init__r   r   r   r   r   r.   F  r   r.   c                       s   e Zd ZdZd fdd	Z						dddZ																				dddZ														dd	d
Z				dddZdd Z															dddZ
								dddZ  ZS )r+   z<Dial> TwiML VerbNc                    r   )Nr+   r   )r   r+   r   r	   r   )r   r   r   r   r   r   r   Q  r   zDial.__init__c                 K   r   )a  
        Create a <Client> element

        :param identity: Client identity
        :param url: Client URL
        :param method: Client URL Method
        :param status_callback_event: Events to trigger status callback
        :param status_callback: Status Callback URL
        :param status_callback_method: Status Callback URL Method
        :param kwargs: additional attributes

        :returns: <Client> element
        )identityrX   r   status_callback_eventr   r   Nr   )r   Client)r   rA  rX   r   rB  r   r   r   r   r   r   clientW  r   zDial.clientc                 K   s   |  t|fi d|d|d|d|d|d|d|d|	d	|
d
|d|d|d|d|d|d|d|d|d|d||S )a.  
        Create a <Conference> element

        :param name: Conference name
        :param muted: Join the conference muted
        :param beep: Play beep when joining
        :param start_conference_on_enter: Start the conference on enter
        :param end_conference_on_exit: End the conferenceon exit
        :param wait_url: Wait URL
        :param wait_method: Wait URL method
        :param max_participants: Maximum number of participants
        :param record: Record the conference
        :param region: Conference region
        :param coach: Call coach
        :param trim: Trim the conference recording
        :param status_callback_event: Events to call status callback URL
        :param status_callback: Status callback URL
        :param status_callback_method: Status callback URL method
        :param recording_status_callback: Recording status callback URL
        :param recording_status_callback_method: Recording status callback URL method
        :param recording_status_callback_event: Recording status callback events
        :param event_callback_url: Event callback URL
        :param jitter_buffer_size: Size of jitter buffer for participant
        :param participant_label: A label for participant
        :param kwargs: additional attributes

        :returns: <Conference> element
        mutedbeepstart_conference_on_enterend_conference_on_exitr2   wait_methodmax_participantsr   regioncoachr    rB  r   r   r!   r"   r#   event_callback_urljitter_buffer_sizeparticipant_label)r   
Conference)r   r	   rE  rF  rG  rH  r2   rI  rJ  r   rK  rL  r    rB  r   r   r!   r"   r#   rM  rN  rO  r   r   r   r   
conferencez  s\   5	
zDial.conferencec                 K   4   |  t|f||||||||	|
|||||d|S )a  
        Create a <Number> element

        :param phone_number: Phone Number to dial
        :param send_digits: DTMF tones to play when the call is answered
        :param url: TwiML URL
        :param method: TwiML URL method
        :param status_callback_event: Events to call status callback
        :param status_callback: Status callback URL
        :param status_callback_method: Status callback URL method
        :param byoc: BYOC trunk SID (Beta)
        :param machine_detection: Enable machine detection or end of greeting detection
        :param amd_status_callback_method: HTTP Method to use with amd_status_callback
        :param amd_status_callback: The URL we should call to send amd status information to your application
        :param machine_detection_timeout: Number of seconds to wait for machine detection
        :param machine_detection_speech_threshold: Number of milliseconds for measuring stick for the length of the speech activity
        :param machine_detection_speech_end_threshold: Number of milliseconds of silence after speech activity
        :param machine_detection_silence_timeout: Number of milliseconds of initial silence
        :param kwargs: additional attributes

        :returns: <Number> element
        )send_digitsrX   r   rB  r   r   byocmachine_detectionamd_status_callback_methodamd_status_callbackmachine_detection_timeout"machine_detection_speech_threshold&machine_detection_speech_end_threshold!machine_detection_silence_timeout)r   Number)r   phone_numberrS  rX   r   rB  r   r   rT  rU  rV  rW  rX  rY  rZ  r[  r   r   r   r   r     ,   )zDial.numberc              	   K   r`   ra   rd   rf   r   r   r   rg   	  rh   z
Dial.queuec                 K   r   )z
        Create a <Sim> element

        :param sim_sid: SIM SID
        :param kwargs: additional attributes

        :returns: <Sim> element
        )r   Simr   sim_sidr   r   r   r   sim(	  r   zDial.simc                 K   rR  )a  
        Create a <Sip> element

        :param sip_url: SIP URL
        :param username: SIP Username
        :param password: SIP Password
        :param url: Action URL
        :param method: Action URL method
        :param status_callback_event: Status callback events
        :param status_callback: Status callback URL
        :param status_callback_method: Status callback URL method
        :param machine_detection: Enable machine detection or end of greeting detection
        :param amd_status_callback_method: HTTP Method to use with amd_status_callback
        :param amd_status_callback: The URL we should call to send amd status information to your application
        :param machine_detection_timeout: Number of seconds to wait for machine detection
        :param machine_detection_speech_threshold: Number of milliseconds for measuring stick for the length of the speech activity
        :param machine_detection_speech_end_threshold: Number of milliseconds of silence after speech activity
        :param machine_detection_silence_timeout: Number of milliseconds of initial silence
        :param kwargs: additional attributes

        :returns: <Sip> element
        )usernamepasswordrX   r   rB  r   r   rU  rV  rW  rX  rY  rZ  r[  )r   r   )r   r   rc  rd  rX   r   rB  r   r   rU  rV  rW  rX  rY  rZ  r[  r   r   r   r   r   3	  r^  zDial.sipc	           
      K   s&   |  td||||||||d|	S )a  
        Create a <Application> element

        :param application_sid: Application sid
        :param url: TwiML URL
        :param method: TwiML URL Method
        :param status_callback_event: Events to trigger status callback
        :param status_callback: Status Callback URL
        :param status_callback_method: Status Callback URL Method
        :param customer_id: Identity of the customer calling application
        :param copy_parent_to: Copy parent call To field to called application side, otherwise use the application sid as To field
        :param kwargs: additional attributes

        :returns: <Application> element
        )application_sidrX   r   rB  r   r   customer_idcopy_parent_toNr   )r   Application)
r   re  rX   r   rB  r   r   rf  rg  r   r   r   r   applicationq	  s   	zDial.applicationr   r   )NNNNNNNNNNNNNNNNNNNNr   r   )NNNNNNNN)r   r   r   r   r   rD  rQ  r   rg   rb  r   ri  r   r   r   r   r   r+   N  s    
&
S
A
 
@r+   c                       4   e Zd ZdZd	 fdd	Zdd Zd
ddZ  ZS )rh  z<Application> TwiML NounNc                    r   )Nrh  r   )r   rh  r   r	   r   )r   re  r   r   r   r   r   	  r   zApplication.__init__c                 K   r   )z
        Create a <ApplicationSid> element

        :param sid: Application sid to dial
        :param kwargs: additional attributes

        :returns: <ApplicationSid> element
        )r   ApplicationSidr   sidr   r   r   r   re  	  r   zApplication.application_sidc                 K   r   r   r   r   r   r   r   r   	  r   zApplication.parameterr   r   )r   r   r   r   r   re  r   r   r   r   r   r   rh  	  
    rh  c                       r   )rk  z<ApplicationSid> TwiML Nounc                    r   )Nrk  r   )r   rk  r   r	   r   rl  r   r   r   r   	  r   zApplicationSid.__init__r   r   r   r   r   rk  	  r   rk  c                       r   )r   z<Sip> TwiML Nounc                    r   r   )r   r   r   r	   r   r   r   r   r   r   	  r   zSip.__init__r   r   r   r   r   r   	  r   r   c                       r   )r_  z<Sim> TwiML Nounc                    r   )Nr_  r   )r   r_  r   r	   r   r`  r   r   r   r   	  r   zSim.__init__r   r   r   r   r   r_  	  r   r_  c                       r   )r\  z<Number> TwiML Nounc                    r   )Nr\  r   )r   r\  r   r	   r   )r   r]  r   r   r   r   r   	  r   zNumber.__init__r   r   r   r   r   r\  	  r   r\  c                       r   )rP  z<Conference> TwiML Nounc                    r   )NrP  r   )r   rP  r   r	   r   r<  r   r   r   r   	  r   zConference.__init__r   r   r   r   r   rP  	  r   rP  c                       rj  )rC  z<Client> TwiML NounNc                    r   )NrC  r   )r   rC  r   r	   r   )r   rA  r   r   r   r   r   	  r   zClient.__init__c                 K   r   )z
        Create a <Identity> element

        :param client_identity: Identity of the client to dial
        :param kwargs: additional attributes

        :returns: <Identity> element
        )r   Identityr   client_identityr   r   r   r   rA  	  r   zClient.identityc                 K   r   r   r   r   r   r   r   r   	  r   zClient.parameterr   r   )r   r   r   r   r   rA  r   r   r   r   r   r   rC  	  rn  rC  c                       r   )ro  z<Identity> TwiML Nounc                    r   )Nro  r   )r   ro  r   r	   r   rp  r   r   r   r   
  r   zIdentity.__init__r   r   r   r   r   ro  

  r   ro  c                       s   e Zd ZdZ fddZdddZdd Z						dd	d
Z					dddZ														dddZ																						dddZ
																					dddZ  ZS )r   z<Connect> TwiML Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r   
  r   zConnect.__init__Nc                 K   rn   )z
        Create a <Room> element

        :param name: Room name
        :param participant_identity: Participant identity when connecting to the Room
        :param kwargs: additional attributes

        :returns: <Room> element
        participant_identity)r   Room)r   r	   rr  r   r   r   r   room
  s   
zConnect.roomc                 K   r   )z
        Create a <Autopilot> element

        :param name: Autopilot assistant sid or unique name
        :param kwargs: additional attributes

        :returns: <Autopilot> element
        )r   	Autopilotr<  r   r   r   	autopilot(
  r   zConnect.autopilotc                 K   r   r   r   r   r   r   r   r   3
  r   zConnect.streamc              
   K   r   )a5  
        Create a <VirtualAgent> element

        :param connector_name: Defines the conversation profile Dialogflow needs to use
        :param language: Language to be used by Dialogflow to transcribe speech
        :param sentiment_analysis: Whether sentiment analysis needs to be enabled or not
        :param status_callback: URL to post status callbacks from Twilio
        :param status_callback_method: HTTP method to use when requesting the status callback URL
        :param kwargs: additional attributes

        :returns: <VirtualAgent> element
        )r   r@   sentiment_analysisr   r   Nr   )r   VirtualAgent)r   r   r@   rw  r   r   r   r   r   r   virtual_agentV
  r   zConnect.virtual_agentc                 K   r   )a  
        Create a <Conversation> element

        :param service_instance_sid: Service instance Sid
        :param inbound_autocreation: Inbound autocreation
        :param routing_assignment_timeout: Routing assignment timeout
        :param inbound_timeout: Inbound timeout
        :param url: TwiML URL
        :param method: TwiML URL method
        :param record: Record
        :param trim: Trim
        :param recording_status_callback: Recording status callback URL
        :param recording_status_callback_method: Recording status callback URL method
        :param recording_status_callback_event: Recording status callback events
        :param status_callback: Status callback URL
        :param status_callback_method: Status callback URL method
        :param status_callback_event: Events to call status callback URL
        :param kwargs: additional attributes

        :returns: <Conversation> element
        )service_instance_sidinbound_autocreationrouting_assignment_timeoutinbound_timeoutrX   r   r   r    r!   r"   r#   r   r   rB  Nr   )r   Conversation)r   rz  r{  r|  r}  rX   r   r   r    r!   r"   r#   r   r   rB  r   r   r   r   conversationv
  r   zConnect.conversationc                 K      |  tdi d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|d|d|d|d||S )a(	  
        Create a <ConversationRelay> element

        :param url: URL of the remote service where the session is connected to
        :param language: Language to be used for both text-to-speech and transcription
        :param tts_language: Language to be used for text-to-speech
        :param transcription_language: Language to be used for transcription
        :param tts_provider: Provider to be used for text-to-speech
        :param voice: Voice to be used for text-to-speech
        :param transcription_provider: Provider to be used for transcription
        :param speech_model: Speech model to be used for transcription
        :param profanity_filter: Whether profanities should be filtered out of the speech transcription
        :param dtmf_detection: Whether DTMF tones should be detected and reported in speech transcription
        :param welcome_greeting: The sentence to be played automatically when the session is connected
        :param partial_prompts: Whether partial prompts should be reported to WebSocket server before the caller finishes speaking
        :param welcome_greeting_interruptible: "Whether and how the input from a caller, such as speaking or DTMF can interrupt the welcome greeting
        :param interruptible: Whether and how the input from a caller, such as speaking or DTMF can interrupt the play of text-to-speech
        :param preemptible: Whether subsequent text-to-speech or play media can interrupt the on-going play of text-to-speech or media
        :param hints: Phrases to help better accuracy in speech recognition of these pharases
        :param intelligence_service: The Conversational Intelligence Service id or unique name to be used for the session
        :param report_input_during_agent_speech: Whether prompts should be reported to WebSocket server when text-to-speech playing and interrupt is disabled
        :param elevenlabs_text_normalization: When using ElevenLabs as TTS provider, this parameter allows you to enable or disable its text normalization feature
        :param interrupt_sensitivity: Set the sensitivity of the interrupt feature for speech. The value can be low, medium, or high
        :param debug: Multiple debug options to be used for troubleshooting
        :param kwargs: additional attributes

        :returns: <ConversationRelay> element
        rX   r@   tts_languagetranscription_languagetts_providerrw   transcription_providerrE   r;   dtmf_detectionwelcome_greetingpartial_promptswelcome_greeting_interruptibleinterruptiblepreemptiblerA   r    report_input_during_agent_speechelevenlabs_text_normalizationinterrupt_sensitivityrC   Nr   )r   ConversationRelay)r   rX   r@   r  r  r  rw   r  rE   r;   r  r  r  r  r  r  rA   r   r  r  r  rC   r   r   r   r   conversation_relay
  \   5	
zConnect.conversation_relayc                 K   r  )a 	  
        Create a <Assistant> element

        :param id: The assistant ID of the AI Assistant
        :param language: Language to be used for both text-to-speech and transcription
        :param tts_language: Language to be used for text-to-speech
        :param transcription_language: Language to be used for transcription
        :param tts_provider: Provider to be used for text-to-speech
        :param voice: Voice to be used for text-to-speech
        :param transcription_provider: Provider to be used for transcription
        :param speech_model: Speech model to be used for transcription
        :param profanity_filter: Whether profanities should be filtered out of the speech transcription
        :param dtmf_detection: Whether DTMF tones should be detected and reported in speech transcription
        :param welcome_greeting: The sentence to be played automatically when the session is connected
        :param partial_prompts: Whether partial prompts should be reported to WebSocket server before the caller finishes speaking
        :param welcome_greeting_interruptible: "Whether and how the input from a caller, such as speaking or DTMF can interrupt the welcome greeting
        :param interruptible: Whether and how the input from a caller, such as speaking or DTMF can interrupt the play of text-to-speech
        :param preemptible: Whether subsequent text-to-speech or play media can interrupt the on-going play of text-to-speech or media
        :param hints: Phrases to help better accuracy in speech recognition of these pharases
        :param intelligence_service: The Conversational Intelligence Service id or unique name to be used for the session
        :param report_input_during_agent_speech: Whether prompts should be reported to WebSocket server when text-to-speech playing and interrupt is disabled
        :param elevenlabs_text_normalization: When using ElevenLabs as TTS provider, this parameter allows you to enable or disable its text normalization feature
        :param interrupt_sensitivity: Set the sensitivity of the interrupt feature for speech. The value can be low, medium, or high
        :param debug: Multiple debug options to be used for troubleshooting
        :param kwargs: additional attributes

        :returns: <Assistant> element
        idr@   r  r  r  rw   r  rE   r;   r  r  r  r  r  r  rA   r   r  r  r  rC   Nr   )r   	Assistant)r   r  r@   r  r  r  rw   r  rE   r;   r  r  r  r  r  r  rA   r   r  r  r  rC   r   r   r   r   	assistant  r  zConnect.assistantr   r   r   r   )NNNNNNNNNNNNNNNNNNNNN)r   r   r   r   r   rt  rv  r   ry  r  r  r  r   r   r   r   r   r   
  s    

%
"
=
Rr   c                       r:  )r  z<Assistant> TwiML Nounc                    r   )Nr  r   )r   r  r   r	   r
   r   r   r   r   U  r   zAssistant.__init__Nc              
   K   r   a  
        Create a <Language> element

        :param code: Language code of this language setting is for
        :param tts_provider: Provider to be used for text-to-speech of this language
        :param voice: Voice to be used for text-to-speech of this language
        :param transcription_provider: Provider to be used for transcription of this language
        :param speech_model: Speech model to be used for transcription of this language
        :param kwargs: additional attributes

        :returns: <Language> element
        )coder  rw   r  rE   Nr   r   Languager   r  r  rw   r  rE   r   r   r   r   r@   Y  r   zAssistant.languagec                 K   r   r   r   r   r   r   r   r   y  r   zAssistant.parameterr   r   r   r   r   r   r   r@   r   r   r   r   r   r   r  R  r;  r  c                       r   )r  z<Language> TwiML Nounc                    r   )Nr  r   )r   r  r   r	   r
   r   r   r   r     r   zLanguage.__init__r   r   r   r   r   r    r   r  c                       r:  )r  z<ConversationRelay> TwiML Nounc                    r   )Nr  r   )r   r  r   r	   r
   r   r   r   r     r   zConversationRelay.__init__Nc              
   K   r   r  r  r  r   r   r   r@     r   zConversationRelay.languagec                 K   r   r   r   r   r   r   r   r     r   zConversationRelay.parameterr   r   r  r   r   r   r   r    r;  r  c                       r   )r~  z<Conversation> TwiML Nounc                    r   )Nr~  r   )r   r~  r   r	   r
   r   r   r   r     r   zConversation.__init__r   r   r   r   r   r~    r   r~  c                       r   )
rx  z<VirtualAgent> TwiML Nounc                    r   )Nrx  r   )r   rx  r   r	   r
   r   r   r   r     r   zVirtualAgent.__init__Nc                 K   r   r   r   r   r   r   r   r     r   zVirtualAgent.configc                 K   r   r   r   r   r   r   r   r     r   zVirtualAgent.parameterr   r   r   r   r   r   rx    r   rx  c                       r   )ru  z<Autopilot> TwiML Nounc                    r   )Nru  r   )r   ru  r   r	   r   r<  r   r   r   r     r   zAutopilot.__init__r   r   r   r   r   ru    r   ru  c                       r   )rs  z<Room> TwiML Nounc                    r   )Nrs  r   )r   rs  r   r	   r   r<  r   r   r   r     r   zRoom.__init__r   r   r   r   r   rs    r   rs  N)8r   twilio.twimlr   r   r   r   r   r   r   r   r   r   r   r   rR   r\   ry   r1  r+  r$  r  r  r  r  r	  r   r   r   r   rr   ro   rm   re   rL   rJ   rG   r5   r>  r.   r+   rh  rk  r   r_  r\  rP  rC  ro  r   r  r  r  r~  rx  ru  rs  r   r   r   r   <module>   s       -	   0
 	Z		 	r	 	}r4			0	  O!					!	  A44 	