o
    4gD                    @   s$  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Z3deS )fza
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																		d.ddZ	dd Z
dd Zd0ddZd1ddZ				d2ddZ												d3ddZd0ddZd0ddZd2dd Z					d4d!d"Z																		d.d#d$Z					d4d%d&Zd-d'd(Zd)d* Zd-d+d,Z  ZS )5VoiceResponsez<Response> TwiML for Voicec                        t t| jdi | d| _d S )NResponse )superr   __init__nameselfkwargs	__class__r   g/var/www/html/Testing_prj/Navya-Bakers/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      |  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 <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 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_methodNr   )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   dial!   P   /	
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   echoh      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   r2   r   r3   r4   r5   r   r   r   r   enqueuer   s   zVoiceResponse.enqueuec                 K   r   )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   r-   zVoiceResponse.gatherc                 K   r.   )z}
        Create a <Hangup> element

        :param kwargs: additional attributes

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

        :param kwargs: additional attributes

        :returns: <Leave> element
        Nr   )r   Leaver
   r   r   r   leave   r1   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   rO   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   rW   rX   rY   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
        )rW   r   reservation_sidpost_work_activity_sidr   Queuer   r	   rW   r   ra   rb   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<   rh   ri   r!   r"   r#   r$   rj   rk   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   rW   r   r   r   r   r   redirect`  r   zVoiceResponse.redirectc                 K   rM   )z
        Create a <Reject> element

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

        :returns: <Reject> element
        reasonNr   )r   Reject)r   rp   r   r   r   r   rejectl  rT   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voicerX   r@   Nr   r   Sayr   ru   rv   rX   r@   r   r   r   r   sayw     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   ru   r|   r}   r   r   r~   r   r   r   r   sms  s   zVoiceResponse.smsc                 K   r   )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  r-   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  r1   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)NNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNN)__name__
__module____qualname____doc__r   r   r,   r0   r7   rH   rJ   rL   rS   r]   rf   r    ro   rr   rz   r   r   r   r   r   r   __classcell__r   r   r   r   r      s    

G
(
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   7  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   4  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   J     
zReferSip.__init__r   r   r   r   r   r   r   r   r   r   r   G      r   c                       @   e Zd ZdZ f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   S  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_namerW   trackr~   r   Nr   r   Streamr   r	   r   rW   r   r~   r   r   r   r   r   streamW     zStop.streamc                 K   rU   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 kwargs: additional attributes

        :returns: <Siprec> element
        )r	   r   r   Nr   r   Siprecr   r	   r   r   r   r   r   r   siprecz     zStop.siprecNNNNNNr   r   r   r   r   r   r   r   r   r   r   r   r   r   P      
#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   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	   r   Nr   r   	Parameterr   r	   r   r   r   r   r   	parameter  r   zSiprec.parameterr   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<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     r   zStart.__init__Nc                 K   r   r   r   r   r   r   r   r     r   zStart.streamc                 K   rU   r   r   r   r   r   r   r     r   zStart.siprecr   r   r   r   r   r   r   r     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   rs   rt   rw   ry   r   r   r   rz     r{   z
Prompt.sayc                 K   rU   rV   rZ   r\   r   r   r   r]     r^   zPrompt.playc                 K   rM   rN   rP   rR   r   r   r   rS     rT   zPrompt.pauser   r   r   )	r   r   r   r   r   rz   r]   rS   r   r   r   r   r   r     s    

r   c                       r   )rQ   z<Pause> TwiML Verbc                    r   )NrQ   r   )r   rQ   r   r	   r
   r   r   r   r   '  r   zPause.__init__r   r   r   r   r   rQ   $  r   rQ   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   rW   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 )rx   z<Say> TwiML VerbNc                    r   )Nrx   r   )r   rx   r   r	   r   r   ru   r   r   r   r   r   9  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   emphasisK  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   langW  r   zSay.langc                 K   rM   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   pc  rT   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   phonemen  r^   zSay.phonemec              	   K   rs   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   rM   z
        Create a <S> element

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

        :returns: <S> element
        r   Nr   r   SsmlSr   r   r   r   s  rT   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_as  r   z
Say.say_asc                 K   rm   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   sub  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   w  r   zSay.wr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   r   rx   6      








rx   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 )r  z>Improving Pronunciation by Specifying Parts of Speech in <Say>Nc                    r   )Nr  r   )r   r  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   rs   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   rm   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   r    s    




r  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   3  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   K  r   zSsmlProsody.langc                 K   rM   r   r   r   r   r   r   r   W  rT   zSsmlProsody.pc                 K   r   r   r   r   r   r   r   r   b  r^   zSsmlProsody.phonemec              	   K   rs   r   r  r  r   r   r   r  o  r{   zSsmlProsody.prosodyc                 K   rM   r  r  r   r   r   r   r    rT   zSsmlProsody.sc                 K   r   r	  r  r  r   r   r   r    r   zSsmlProsody.say_asc                 K   rm   r  r  r  r   r   r   r    r   zSsmlProsody.subc                 K   r   r  r  r  r   r   r   r    r   zSsmlProsody.wr   r   r   r  r   r   r   r   r  *  r  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     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   rs   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   rm   r  r  r  r   r   r   r    r   z	SsmlS.subc                 K   r   r  r  r  r   r   r   r    r   zSsmlS.wr   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r   r   r   r   r        






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   0  r   zSsmlLang.__init__c                 K   r   r   r   r   r   r   r   r   6  r   zSsmlLang.break_c                 K   r   r   r   r   r   r   r   r   B  r   zSsmlLang.emphasisc                 K   r   r   r   r   r   r   r   r   N  r   zSsmlLang.langc                 K   rM   r   r   r   r   r   r   r   Z  rT   z
SsmlLang.pc                 K   r   r   r   r   r   r   r   r   e  r^   zSsmlLang.phonemec              	   K   rs   r   r  r  r   r   r   r  r  r{   zSsmlLang.prosodyc                 K   rM   r  r  r   r   r   r   r    rT   z
SsmlLang.sc                 K   r   r	  r  r  r   r   r   r    r   zSsmlLang.say_asc                 K   rm   r  r  r  r   r   r   r    r   zSsmlLang.subc                 K   r   r  r  r  r   r   r   r    r   z
SsmlLang.wr   r   r   r  r   r   r   r   r   -  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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   rs   r   r  r  r   r   r   r    r{   zSsmlP.prosodyc                 K   rM   r  r  r   r   r   r   r    rT   zSsmlP.sc                 K   r   r	  r  r  r   r   r   r  
  r   zSsmlP.say_asc                 K   rm   r  r  r  r   r   r   r    r   z	SsmlP.subc                 K   r   r  r  r  r   r   r   r  %  r   zSsmlP.wr   r   r   )r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   r   r     s    







r   c                       r  )r   zEmphasizing Words in <Say>Nc                    r   )Nr   r   )r   r   r   r	   r   r   r   r   r   r   5  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   G  r   zSsmlEmphasis.emphasisc                 K   r   r   r   r   r   r   r   r   S  r   zSsmlEmphasis.langc                 K   r   r   r   r   r   r   r   r   _  r^   zSsmlEmphasis.phonemec              	   K   rs   r   r  r  r   r   r   r  l  r{   zSsmlEmphasis.prosodyc                 K   r   r	  r  r  r   r   r   r  |  r   zSsmlEmphasis.say_asc                 K   rm   r  r  r  r   r   r   r    r   zSsmlEmphasis.subc                 K   r   r  r  r  r   r   r   r    r   zSsmlEmphasis.wr   r   r   r  r   r   r   r   r   2  r   r   c                       r   )r   zAdding a Pause in <Say>c                    r   )Nbreakr   )r   r   r   r	   r
   r   r   r   r     r   zSsmlBreak.__init__r   r   r   r   r   r     r   r   c                       s>   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   zPay.__init__Nc              
   K   r   r   r   r   r   r   r   r     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     s    
 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   )rq   z<Reject> TwiML Verbc                    r   )Nrq   r   )r   rq   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   rq     r   rq   c                       r   )rn   z<Redirect> TwiML Verbc                    r   )Nrn   r   )r   rn   r   r	   r   r   r   r   r   r      r   zRedirect.__init__r   r   r   r   r   rn     r   rn   c                       r   )rl   z<Record> TwiML Verbc                    r   )Nrl   r   )r   rl   r   r	   r
   r   r   r   r   	  r   zRecord.__init__r   r   r   r   r   rl     r   rl   c                       r   )rd   z<Queue> TwiML Nounc                    r   )Nrd   r   )r   rd   r   r	   r   r   r	   r   r   r   r   r     r   zQueue.__init__r   r   r   r   r   rd     r   rd   c                       r   )rK   z<Leave> TwiML Verbc                    r   )NrK   r   )r   rK   r   r	   r
   r   r   r   r     r   zLeave.__init__r   r   r   r   r   rK     r   rK   c                       r   )rI   z<Hangup> TwiML Verbc                    r   )NrI   r   )r   rI   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   rI     r   rI   c                       r   )rG   z<Gather> TwiML Verbc                    r   )NrG   r   )r   rG   r   r	   r
   r   r   r   r   6  r   zGather.__init__Nc              	   K   rs   rt   rw   ry   r   r   r   rz   :  r{   z
Gather.sayc                 K   rM   rN   rP   rR   r   r   r   rS   J  rT   zGather.pausec                 K   rU   rV   rZ   r\   r   r   r   r]   U  r^   zGather.playr   r   r   )	r   r   r   r   r   rz   rS   r]   r   r   r   r   r   rG   3  s    

rG   c                       s,   e Zd ZdZd fdd	ZdddZ  ZS )	r6   z<Enqueue> TwiML NounNc                    r   )Nr6   r   )r   r6   r   r	   r   r"  r   r   r   r   f  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   taskl  r^   zEnqueue.taskr   r   )r   r   r   r   r   r&  r   r   r   r   r   r6   c  s    r6   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$  z  r   r$  c                       r   )r/   z<Echo> TwiML Verbc                    r   )Nr/   r   )r   r/   r   r	   r
   r   r   r   r     r   zEcho.__init__r   r   r   r   r   r/     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     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
        )identityrW   r   status_callback_eventr~   r   Nr   )r   Client)r   r'  rW   r   r(  r~   r   r   r   r   r   client  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_exitr3   wait_methodmax_participantsr    regioncoachr!   r(  r~   r   r"   r#   r$   event_callback_urljitter_buffer_sizeparticipant_label)r   
Conference)r   r	   r+  r,  r-  r.  r3   r/  r0  r    r1  r2  r!   r(  r~   r   r"   r#   r$   r3  r4  r5  r   r   r   r   
conference  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_digitsrW   r   r(  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_numberr9  rW   r   r(  r~   r   r:  r;  r<  r=  r>  r?  r@  rA  r   r   r   r   r     ,   )zDial.numberc              	   K   r_   r`   rc   re   r   r   r   rf   E  rg   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   sime  r   zDial.simc                 K   r8  )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passwordrW   r   r(  r~   r   r;  r<  r=  r>  r?  r@  rA  )r   r   )r   r   rI  rJ  rW   r   r(  r~   r   r;  r<  r=  r>  r?  r@  rA  r   r   r   r   r   p  rD  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_sidrW   r   r(  r~   r   customer_idcopy_parent_toNr   )r   Application)
r   rK  rW   r   r(  r~   r   rL  rM  r   r   r   r   application  s   	zDial.applicationr   r   )NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr   )NNNNNNNN)r   r   r   r   r   r*  r7  r   rf   rH  r   rO  r   r   r   r   r   r+     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 )rN  z<Application> TwiML NounNc                    r   )NrN  r   )r   rN  r   r	   r   )r   rK  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   rK    r   zApplication.application_sidc                 K   r   r   r   r   r   r   r   r     r   zApplication.parameterr   r   )r   r   r   r   r   rK  r   r   r   r   r   r   rN    
    rN  c                       r   )rR  z<ApplicationSid> TwiML Nounc                    r   )NrR  r   )r   rR  r   r	   r   rS  r   r   r   r     r   zApplicationSid.__init__r   r   r   r   r   rR    r   rR  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   )rE  z<Sim> TwiML Nounc                    r   )NrE  r   )r   rE  r   r	   r   rF  r   r   r   r   	  r   zSim.__init__r   r   r   r   r   rE  	  r   rE  c                       r   )rB  z<Number> TwiML Nounc                    r   )NrB  r   )r   rB  r   r	   r   )r   rC  r   r   r   r   r   	  r   zNumber.__init__r   r   r   r   r   rB  	  r   rB  c                       r   )r6  z<Conference> TwiML Nounc                    r   )Nr6  r   )r   r6  r   r	   r   r"  r   r   r   r    	  r   zConference.__init__r   r   r   r   r   r6  	  r   r6  c                       rQ  )r)  z<Client> TwiML NounNc                    r   )Nr)  r   )r   r)  r   r	   r   )r   r'  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   r'  /	  r   zClient.identityc                 K   r   r   r   r   r   r   r   r   :	  r   zClient.parameterr   r   )r   r   r   r   r   r'  r   r   r   r   r   r   r)  &	  rU  r)  c                       r   )rV  z<Identity> TwiML Nounc                    r   )NrV  r   )r   rV  r   r	   r   rW  r   r   r   r   J	  r   zIdentity.__init__r   r   r   r   r   rV  G	  r   rV  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	  Z
S )r   z<Connect> TwiML Verbc                    r   )Nr   r   )r   r   r   r	   r
   r   r   r   r   S	  r   zConnect.__init__Nc                 K   rm   )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	   rY  r   r   r   r   roomW	  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   	autopilote	  r   zConnect.autopilotc                 K   r   r   r   r   r   r   r   r   p	  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@   r^  r~   r   r   r   r   r   virtual_agent	  r   zConnect.virtual_agentc                 K   s2   |  td|||||||||	|
||||d|S )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_timeoutrW   r   r    r!   r"   r#   r$   r~   r   r(  Nr   )r   Conversation)r   ra  rb  rc  rd  rW   r   r    r!   r"   r#   r$   r~   r   r(  r   r   r   r   conversation	  s(   'zConnect.conversationr   r   r   rP  )r   r   r   r   r   r[  r]  r   r`  rf  r   r   r   r   r   r   P	  sB    

%
"r   c                       r   )re  z<Conversation> TwiML Nounc                    r   )Nre  r   )r   re  r   r	   r
   r   r   r   r   	  r   zConversation.__init__r   r   r   r   r   re  	  r   re  c                       s4   e Zd ZdZ fddZd	ddZd	ddZ  ZS )
r_  z<VirtualAgent> TwiML Nounc                    r   )Nr_  r   )r   r_  r   r	   r
   r   r   r   r   	  r   zVirtualAgent.__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   Nr   )r   Configr   r   r   r   config	  r   zVirtualAgent.configc                 K   r   r   r   r   r   r   r   r   

  r   zVirtualAgent.parameterr   )r   r   r   r   r   rh  r   r   r   r   r   r   r_  	  s
    
r_  c                       r   )rg  z<Config> TwiML Nounc                    r   )Nrg  r   )r   rg  r   r	   r
   r   r   r   r   
  r   zConfig.__init__r   r   r   r   r   rg  
  r   rg  c                       r   )r\  z<Autopilot> TwiML Nounc                    r   )Nr\  r   )r   r\  r   r	   r   r"  r   r   r   r   "
  r   zAutopilot.__init__r   r   r   r   r   r\  
  r   r\  c                       r   )rZ  z<Room> TwiML Nounc                    r   )NrZ  r   )r   rZ  r   r	   r   r"  r   r   r   r   +
  r   zRoom.__init__r   r   r   r   r   rZ  (
  r   rZ  N)4r   twilio.twimlr   r   r   r   r   r   r   r   r   r   rQ   r[   rx   r  r  r  r  r  r   r   r   r   r   r   r   rq   rn   rl   rd   rK   rI   rG   r6   r$  r/   r+   rN  rR  r   rE  rB  r6  r)  rV  r   re  r_  rg  r\  rZ  r   r   r   r   <module>   sz       *	::0
 	Z		 	r	 	}r4			0	  O!					!	   	