o
    e                    @   s  d Z ddlZddlmZ ddlmZ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/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Z0G dYdZ dZeZ1G d[d\ d\eZ2G d]d^ d^eZ3dS )_za
This code was generated by
\ / _    _  _|   _  _
 | (_)\/(_)(_|\/| |(/_  v1.0.0
      /       /
    N)deprecated_method)TwiMLformat_languagec                       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d2d%d&Zd-d'd(Zd)d* Zd-d+d,Z  ZS )5VoiceResponsez <Response> TwiML for Voice c                        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      |  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$   sL    	
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   echoZ      zVoiceResponse.echoc                 K   "   |  td||||||d|S )at  
        Create a <Enqueue> element

        :param name: Friendly name
        :param action: Action URL
        :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   r   wait_urlwait_url_methodworkflow_sidNr   )r   Enqueue)r   r   r   r   r4   r5   r6   r   r   r   r   enqueued      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   r:   r   r   r   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   r   r   r   r   gather}   L   	
zVoiceResponse.gatherc                 K   r/   )z}
        Create a <Hangup> element

        :param kwargs: additional attributes

        :returns: <Hangup> element
        Nr   )r   Hangupr   r   r   r   hangup   r2   zVoiceResponse.hangupc                 K   r/   )z{
        Create a <Leave> element

        :param kwargs: additional attributes

        :returns: <Leave> element
        Nr   )r   Leaver   r   r   r   leave   r2   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   rR   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   rZ   r[   r\   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
        )rZ   r   reservation_sidpost_work_activity_sidr   Queuer   r   rZ   r   rd   re   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>   rk   rl   r#   r$   r%   r&   rm   rn   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   rZ   r   r   r   r   r   redirect  r   zVoiceResponse.redirectc                 K   rP   )z
        Create a <Reject> element

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

        :returns: <Reject> element
        reasonNr   )r   Reject)r   rs   r   r   r   r   reject*  rW   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 langauge
        :param kwargs: additional attributes

        :returns: <Say> element
        )messagevoicer[   rB   Nr   r   Sayr   rx   ry   r[   rB   r   r   r   r   say5     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   rx   r   r   r   r   r   r   r   r   r   smsC  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
        r:   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_typesrB   Nr   )r   Pay)r   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   r   r   r   r   pay\  rK   zVoiceResponse.payc              	   K   rv   aC  
        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 kwargs: additional attributes

        :returns: <Prompt> element
        )for_
error_type	card_typeattemptNr   r   Prompt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  r2   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NNNNNNNNNNNNNN)NNNNNNNNNNNN)NNNNN)__name__
__module____qualname____doc__r
   r   r.   r1   r8   rJ   rM   rO   rV   r`   ri   r"   rr   ru   r}   r   r   r   r   r   r   __classcell__r   r   r   r   r      sl    

6


5






)




5

r   c                       s8   e Zd ZdZ fddZdd Zeddd Z  ZS )	r   z <Refer> TwiML Verb c                    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.sipr   c                 K   s   | j |fi |S r   )r   r   r   r   r   	refer_sip  s   
zRefer.refer_sip)	r   r   r   r   r
   r   r   r   r   r   r   r   r   r     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
        
zReferSip.__init__r   r   r   r   r
   r   r   r   r   r   r         r   c                       8   e Zd ZdZ fddZ		d	ddZd
ddZ  ZS )r   z <Stop> TwiML Verb c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r
     r   zStop.__init__Nc                 K   r3   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_namerZ   trackr   r   Nr   r   Streamr   r   r   rZ   r   r   r   r   r   r   r   stream  r9   zStop.streamc                 K   rX   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   siprec  ra   zStop.siprecr   r   r   r   r   r   r
   r   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 Noun c                    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 Noun c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r
   6  r   zParameter.__init__r   r   r   r   r   r   3  r   r   c                       r   )r   z <Stream> TwiML Noun c                    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   B  r   zStream.parameterr   r   r   r   r   r   r   ;  r   r   c                       r   )r   z <Start> TwiML Verb c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r
   R  r   zStart.__init__Nc                 K   r3   r   r   r   r   r   r   r   V  r9   zStart.streamc                 K   rX   r   r   r   r   r   r   r   o  ra   zStart.siprecr   r   r   r   r   r   r   r   O  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 Verb c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r
     r   zPrompt.__init__Nc              	   K   rv   rw   rz   r|   r   r   r   r}     r~   z
Prompt.sayc                 K   rX   rY   r]   r_   r   r   r   r`     ra   zPrompt.playc                 K   rP   rQ   rS   rU   r   r   r   rV     rW   zPrompt.pauser   r   r   )	r   r   r   r   r
   r}   r`   rV   r   r   r   r   r   r   }  s    

r   c                       r   )rT   z <Pause> TwiML Verb c                    r   )NrT   r   )r	   rT   r
   r   r   r   r   r   r
     r   zPause.__init__r   r   r   r   r   rT     r   rT   c                       s"   e Zd ZdZd fdd	Z  ZS )r^   z <Play> TwiML Verb Nc                    .   t t| jdi | d| _|r|| _d S d S )Nr^   r   )r	   r^   r
   r   r   r   rZ   r   r   r   r   r
     
   
zPlay.__init__r   r   r   r   r   r   r^     s    r^   c                       :  e Zd ZdZd7 fdd	Zd8ddZedd8dd	Zd8d
dZedd8ddZ	d8ddZ
edd8ddZd7ddZedd7ddZd8ddZedd8ddZd9ddZed d9d!d"Zd7d#d$Zed%d7d&d'Zd8d(d)Zed*d8d+d,Zd7d-d.Zed/d7d0d1Zd8d2d3Zed4d8d5d6Z  ZS ):r{   z <Say> TwiML Verb Nc                    r   )Nr{   r   )r	   r{   r
   r   r   r   rx   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_r   c                 K      | j d||d|S r   r   r   r   r   r   
ssml_break     zSay.ssml_breakc                 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.emphasisr   c                 K   r   r   r   r   r   r   r   ssml_emphasis  r   zSay.ssml_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.langr   c                 K   r   r   r   r   r   r   r   	ssml_lang  r   zSay.ssml_langc                 K   rP   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  rW   zSay.pr   c                 K      | j dd|i|S r   r   r   r   r   r   ssml_p     
z
Say.ssml_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   phoneme(  ra   zSay.phonemer  c                 K      | j |f||d|S r   r  r  r   r   r   ssml_phoneme5     zSay.ssml_phonemec              	   K   rv   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   prosodyC  r~   zSay.prosodyr  c                 K      | j d||||d|S r  r  r  r   r   r   ssml_prosodyQ     zSay.ssml_prosodyc                 K   rP   z
        Create a <S> element

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

        :returns: <S> element
        r   Nr   r   SsmlSr   r   r   r   sa  rW   zSay.sr  c                 K   r   r  r  r   r   r   r   ssml_sl  r   z
Say.ssml_sc                 K   r   aB  
        Create a <Say-As> element

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

        :returns: <Say-As> element
        )interpret_asroler   	SsmlSayAsr   r   r  r  r   r   r   r   say_asx  ra   z
Say.say_asr#  c                 K   r  r  r#  r"  r   r   r   ssml_say_as  r
  zSay.ssml_say_asc                 K   rp   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.subr+  c                 K      | j |fd|i|S r&  r+  r*  r   r   r   ssml_sub  r   zSay.ssml_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   r  Nr   r   SsmlWr   r   r  r   r   r   r   w  r   zSay.wr3  c                 K   r   r/  r3  r2  r   r   r   ssml_w  r   z
Say.ssml_wr   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r#  r%  r+  r.  r3  r5  r   r   r   r   r   r{     B    









r{   c                       s   e Zd ZdZd# fdd	Zd$ddZedd$dd	Zd$d
dZedd$ddZ	d$ddZ
edd$ddZd%ddZedd%ddZd$ddZedd$ddZd#ddZed 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_r   c                 K   r   r   r   r   r   r   r   r     r   zSsmlW.ssml_breakc                 K   r   r   r   r   r   r   r   r     r   zSsmlW.emphasisr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlW.ssml_emphasisc                 K   r   r   r  r  r   r   r   r    ra   zSsmlW.phonemer  c                 K   r  r   r  r  r   r   r   r	    r
  zSsmlW.ssml_phonemec              	   K   rv   r  r  r  r   r   r   r    r~   zSsmlW.prosodyr  c                 K   r  r  r  r  r   r   r   r  *  r  zSsmlW.ssml_prosodyc                 K   r   r  r   r"  r   r   r   r#  :  ra   zSsmlW.say_asr#  c                 K   r  r  r$  r"  r   r   r   r%  G  r
  zSsmlW.ssml_say_asc                 K   rp   r&  r(  r*  r   r   r   r+  U  r   z	SsmlW.subr+  c                 K   r,  r&  r-  r*  r   r   r   r.  a  r   zSsmlW.ssml_subr   r   r   )r   r   r   r   r
   r   r   r   r   r   r  r	  r  r  r#  r%  r+  r.  r   r   r   r   r   r1    s*    





r1  c                       r   )r)  z1 Pronouncing Acronyms and Abbreviations in <Say> c                    r   )Nr+  r   )r	   r)  r
   r   r   r   r   r   r   r
   r  r   zSsmlSub.__init__r   r   r   r   r   r)  o  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!  x  r   r!  c                       r   ):r  z6 Controling 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_r   c                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.ssml_breakc                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.emphasisr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.ssml_emphasisc                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.langr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.ssml_langc                 K   rP   r   r   r   r   r   r   r     rW   zSsmlProsody.pr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlProsody.ssml_pc                 K   r   r   r  r  r   r   r   r    ra   zSsmlProsody.phonemer  c                 K   r  r   r  r  r   r   r   r	    r
  zSsmlProsody.ssml_phonemec              	   K   rv   r  r  r  r   r   r   r    r~   zSsmlProsody.prosodyr  c                 K   r  r  r  r  r   r   r   r    r  zSsmlProsody.ssml_prosodyc                 K   rP   r  r  r   r   r   r   r  %  rW   zSsmlProsody.sr  c                 K   r   r  r  r   r   r   r   r  0  r   zSsmlProsody.ssml_sc                 K   r   r  r   r"  r   r   r   r#  <  ra   zSsmlProsody.say_asr#  c                 K   r  r  r$  r"  r   r   r   r%  I  r
  zSsmlProsody.ssml_say_asc                 K   rp   r&  r(  r*  r   r   r   r+  W  r   zSsmlProsody.subr+  c                 K   r,  r&  r-  r*  r   r   r   r.  c  r   zSsmlProsody.ssml_subc                 K   r   r/  r0  r2  r   r   r   r3  p  r   zSsmlProsody.wr3  c                 K   r   r/  r4  r2  r   r   r   r5  |  r   zSsmlProsody.ssml_wr   r   r   r6  r   r   r   r   r    r7  r  c                         e Zd ZdZd- fdd	Zd.ddZedd.dd	Zd.d
dZedd.ddZ	d.ddZ
edd.ddZd.ddZedd.ddZd/ddZedd/ddZd.ddZed d.d!d"Zd-d#d$Zed%d-d&d'Zd.d(d)Zed*d.d+d,Z  ZS )0r  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_r   c                 K   r   r   r   r   r   r   r   r     r   zSsmlS.ssml_breakc                 K   r   r   r   r   r   r   r   r     r   zSsmlS.emphasisr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlS.ssml_emphasisc                 K   r   r   r   r   r   r   r   r     r   z
SsmlS.langr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlS.ssml_langc                 K   r   r   r  r  r   r   r   r    ra   zSsmlS.phonemer  c                 K   r  r   r  r  r   r   r   r	    r
  zSsmlS.ssml_phonemec              	   K   rv   r  r  r  r   r   r   r    r~   zSsmlS.prosodyr  c                 K   r  r  r  r  r   r   r   r    r  zSsmlS.ssml_prosodyc                 K   r   r  r   r"  r   r   r   r#    ra   zSsmlS.say_asr#  c                 K   r  r  r$  r"  r   r   r   r%  $  r
  zSsmlS.ssml_say_asc                 K   rp   r&  r(  r*  r   r   r   r+  2  r   z	SsmlS.subr+  c                 K   r,  r&  r-  r*  r   r   r   r.  >  r   zSsmlS.ssml_subc                 K   r   r/  r0  r2  r   r   r   r3  K  r   zSsmlS.wr3  c                 K   r   r/  r4  r2  r   r   r   r5  W  r   zSsmlS.ssml_wr   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r  r	  r  r  r#  r%  r+  r.  r3  r5  r   r   r   r   r   r    6    







r  c                       r   )r  z' Using Phonetic Pronunciation in <Say> c                    r   )Nr  r   )r	   r  r
   r   r   r   r   r   r   r
   h  r   zSsmlPhoneme.__init__r   r   r   r   r   r  e  r   r  c                       r   ):r   z9 Specifying Another Language for Specific Words in <Say> Nc                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r   r
   q  r   zSsmlLang.__init__c                 K   r   r   r   r   r   r   r   r   w  r   zSsmlLang.break_r   c                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.ssml_breakc                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.emphasisr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.ssml_emphasisc                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.langr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.ssml_langc                 K   rP   r   r   r   r   r   r   r     rW   z
SsmlLang.pr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlLang.ssml_pc                 K   r   r   r  r  r   r   r   r    ra   zSsmlLang.phonemer  c                 K   r  r   r  r  r   r   r   r	    r
  zSsmlLang.ssml_phonemec              	   K   rv   r  r  r  r   r   r   r    r~   zSsmlLang.prosodyr  c                 K   r  r  r  r  r   r   r   r    r  zSsmlLang.ssml_prosodyc                 K   rP   r  r  r   r   r   r   r    rW   z
SsmlLang.sr  c                 K   r   r  r  r   r   r   r   r    r   zSsmlLang.ssml_sc                 K   r   r  r   r"  r   r   r   r#  )  ra   zSsmlLang.say_asr#  c                 K   r  r  r$  r"  r   r   r   r%  6  r
  zSsmlLang.ssml_say_asc                 K   rp   r&  r(  r*  r   r   r   r+  D  r   zSsmlLang.subr+  c                 K   r,  r&  r-  r*  r   r   r   r.  P  r   zSsmlLang.ssml_subc                 K   r   r/  r0  r2  r   r   r   r3  ]  r   z
SsmlLang.wr3  c                 K   r   r/  r4  r2  r   r   r   r5  i  r   zSsmlLang.ssml_wr   r   r   r6  r   r   r   r   r   n  r7  r   c                       s  e Zd ZdZd2 fdd	Zd3ddZedd3dd	Zd3d
dZedd3ddZ	d3ddZ
edd3ddZd3ddZedd3ddZd4ddZedd4ddZd2ddZed d2d!d"Zd3d#d$Zed%d3d&d'Zd2d(d)Zed*d2d+d,Zd3d-d.Zed/d3d0d1Z  ZS )5r   z, Adding a Pause Between Paragraphs in <Say> Nc                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r   r
   z  r   zSsmlP.__init__c                 K   r   r   r   r   r   r   r   r     r   zSsmlP.break_r   c                 K   r   r   r   r   r   r   r   r     r   zSsmlP.ssml_breakc                 K   r   r   r   r   r   r   r   r     r   zSsmlP.emphasisr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlP.ssml_emphasisc                 K   r   r   r   r   r   r   r   r     r   z
SsmlP.langr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlP.ssml_langc                 K   r   r   r  r  r   r   r   r    ra   zSsmlP.phonemer  c                 K   r  r   r  r  r   r   r   r	    r
  zSsmlP.ssml_phonemec              	   K   rv   r  r  r  r   r   r   r    r~   zSsmlP.prosodyr  c                 K   r  r  r  r  r   r   r   r    r  zSsmlP.ssml_prosodyc                 K   rP   r  r  r   r   r   r   r    rW   zSsmlP.sr  c                 K   r   r  r  r   r   r   r   r    r   zSsmlP.ssml_sc                 K   r   r  r   r"  r   r   r   r#    ra   zSsmlP.say_asr#  c                 K   r  r  r$  r"  r   r   r   r%  (  r
  zSsmlP.ssml_say_asc                 K   rp   r&  r(  r*  r   r   r   r+  6  r   z	SsmlP.subr+  c                 K   r,  r&  r-  r*  r   r   r   r.  B  r   zSsmlP.ssml_subc                 K   r   r/  r0  r2  r   r   r   r3  O  r   zSsmlP.wr3  c                 K   r   r/  r4  r2  r   r   r   r5  [  r   zSsmlP.ssml_wr   r   r   )r   r   r   r   r
   r   r   r   r   r   r   r   r  r	  r  r  r  r  r#  r%  r+  r.  r3  r5  r   r   r   r   r   r   w  s<    








r   c                       r8  )0r   z Emphasizing Words in <Say> Nc                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r   r
   l  r   zSsmlEmphasis.__init__c                 K   r   r   r   r   r   r   r   r   r  r   zSsmlEmphasis.break_r   c                 K   r   r   r   r   r   r   r   r   ~  r   zSsmlEmphasis.ssml_breakc                 K   r   r   r   r   r   r   r   r     r   zSsmlEmphasis.emphasisr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlEmphasis.ssml_emphasisc                 K   r   r   r   r   r   r   r   r     r   zSsmlEmphasis.langr   c                 K   r   r   r   r   r   r   r   r     r   zSsmlEmphasis.ssml_langc                 K   r   r   r  r  r   r   r   r    ra   zSsmlEmphasis.phonemer  c                 K   r  r   r  r  r   r   r   r	    r
  zSsmlEmphasis.ssml_phonemec              	   K   rv   r  r  r  r   r   r   r    r~   zSsmlEmphasis.prosodyr  c                 K   r  r  r  r  r   r   r   r    r  zSsmlEmphasis.ssml_prosodyc                 K   r   r  r   r"  r   r   r   r#    ra   zSsmlEmphasis.say_asr#  c                 K   r  r  r$  r"  r   r   r   r%  	  r
  zSsmlEmphasis.ssml_say_asc                 K   rp   r&  r(  r*  r   r   r   r+  	  r   zSsmlEmphasis.subr+  c                 K   r,  r&  r-  r*  r   r   r   r.  	  r   zSsmlEmphasis.ssml_subc                 K   r   r/  r0  r2  r   r   r   r3  *	  r   zSsmlEmphasis.wr3  c                 K   r   r/  r4  r2  r   r   r   r5  6	  r   zSsmlEmphasis.ssml_wr   r   r   r9  r   r   r   r   r   i  r:  r   c                       r   )r   z Adding a Pause in <Say> c                    r   )Nbreakr   )r	   r   r
   r   r   r   r   r   r
   G	  r   zSsmlBreak.__init__r   r   r   r   r   r   D	  r   r   c                       s4   e Zd ZdZ fddZd	ddZd
ddZ  ZS )r   z <Pay> Twiml Verb c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r
   O	  r   zPay.__init__Nc              	   K   rv   r   r   r   r   r   r   r   S	  r   z
Pay.promptc                 K   r   r   r   r   r   r   r   r   h	  r   zPay.parameterr   r   )r   r   r   r   r
   r   r   r   r   r   r   r   r   L	  s
    
r   c                       r   )r   z <Sms> TwiML Noun c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r   r
   x	  r   zSms.__init__r   r   r   r   r   r   u	  r   r   c                       r   )rt   z <Reject> TwiML Verb c                    r   )Nrt   r   )r	   rt   r
   r   r   r   r   r   r
   	  r   zReject.__init__r   r   r   r   r   rt   ~	  r   rt   c                       r   )rq   z <Redirect> TwiML Verb c                    r   )Nrq   r   )r	   rq   r
   r   r   r   r   r   r   r
   	  r   zRedirect.__init__r   r   r   r   r   rq   	  r   rq   c                       r   )ro   z <Record> TwiML Verb c                    r   )Nro   r   )r	   ro   r
   r   r   r   r   r   r
   	  r   zRecord.__init__r   r   r   r   r   ro   	  r   ro   c                       r   )rg   z <Queue> TwiML Noun c                    r   )Nrg   r   )r	   rg   r
   r   r   r   r   r   r   r   r   r
   	  r   zQueue.__init__r   r   r   r   r   rg   	  r   rg   c                       r   )rN   z <Leave> TwiML Verb c                    r   )NrN   r   )r	   rN   r
   r   r   r   r   r   r
   	  r   zLeave.__init__r   r   r   r   r   rN   	  r   rN   c                       r   )rL   z <Hangup> TwiML Verb c                    r   )NrL   r   )r	   rL   r
   r   r   r   r   r   r
   	  r   zHangup.__init__r   r   r   r   r   rL   	  r   rL   c                       r   )rI   z <Gather> TwiML Verb c                    r   )NrI   r   )r	   rI   r
   r   r   r   r   r   r
   	  r   zGather.__init__Nc              	   K   rv   rw   rz   r|   r   r   r   r}   	  r~   z
Gather.sayc                 K   rP   rQ   rS   rU   r   r   r   rV   	  rW   zGather.pausec                 K   rX   rY   r]   r_   r   r   r   r`   	  ra   zGather.playr   r   r   )	r   r   r   r   r
   r}   rV   r`   r   r   r   r   r   rI   	  s    

rI   c                       s,   e Zd ZdZd fdd	ZdddZ  ZS )	r7   z <Enqueue> TwiML Noun Nc                    r   )Nr7   r   )r	   r7   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	  ra   zEnqueue.taskr   r   )r   r   r   r   r
   r@  r   r   r   r   r   r7   	  s    r7   c                       r   )r>  z <Task> TwiML Noun c                    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   )r0   z <Echo> TwiML Verb c                    r   )Nr0   r   )r	   r0   r
   r   r   r   r   r   r
   
  r   zEcho.__init__r   r   r   r   r   r0   	  r   r0   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
  ZS )r-   z <Dial> TwiML Verb Nc                    r   )Nr-   r   )r	   r-   r
   r   r   )r   r   r   r   r   r   r
   	
  r   zDial.__init__c                 K   r3   )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
        )identityrZ   r   status_callback_eventr   r   Nr   )r   Client)r   rA  rZ   r   rB  r   r   r   r   r   r   client
  s   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_exitr4   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  r4   rI  rJ  r"   rK  rL  r#   rB  r   r   r$   r%   r&   rM  rN  rO  r   r   r   r   
conference)
  sX   %	
zDial.conferencec	           
      K   &   |  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 kwargs: additional attributes

        :returns: <Number> element
        )send_digitsrZ   r   rB  r   r   byoc)r   Number)
r   phone_numberrS  rZ   r   rB  r   r   rT  r   r   r   r   r   g
     	zDial.numberc              	   K   rb   rc   rf   rh   r   r   r   ri   
  rj   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 kwargs: additional attributes

        :returns: <Sip> element
        )usernamepasswordrZ   r   rB  r   r   )r   r   )
r   r   r\  r]  rZ   r   rB  r   r   r   r   r   r   r   
  rW  zDial.sipr   r   )NNNNNNNNNNNNNNNNNNNN)NNNNNNNr   )r   r   r   r   r
   rD  rQ  r   ri   r[  r   r   r   r   r   r   r-   
  s:    

>

r-   c                       r   )r   z <Sip> TwiML Noun c                    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   )rX  z <Sim> TwiML Noun c                    r   )NrX  r   )r	   rX  r
   r   r   rY  r   r   r   r
   
  r   zSim.__init__r   r   r   r   r   rX  
  r   rX  c                       r   )rU  z <Number> TwiML Noun c                    r   )NrU  r   )r	   rU  r
   r   r   )r   rV  r   r   r   r   r
   
  r   zNumber.__init__r   r   r   r   r   rU  
  r   rU  c                       r   )rP  z <Conference> TwiML Noun c                    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                       s4   e Zd ZdZd	 fdd	Zdd Zd
ddZ  ZS )rC  z <Client> TwiML Noun Nc                    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  
  s
    rC  c                       r   )r^  z <Identity> TwiML Noun c                    r   )Nr^  r   )r	   r^  r
   r   r   r_  r   r   r   r
     r   zIdentity.__init__r   r   r   r   r   r^    r   r^  c                       sN   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  Z	S )r   z <Connect> TwiML Verb c                    r   )Nr   r   )r	   r   r
   r   r   r   r   r   r
     r   zConnect.__init__Nc                 K   rp   )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   ra  r   r   r   r   room  r   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   r3   r   r   r   r   r   r   r   2  r9   zConnect.streamc              	   K   rv   )a  
        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 kwargs: additional attributes

        :returns: <VirtualAgent> element
        )r   rB   sentiment_analysisr   Nr   )r   VirtualAgent)r   r   rB   rf  r   r   r   r   r   virtual_agentK  r   zConnect.virtual_agentr   r   r   )
r   r   r   r   r
   rc  re  r   rh  r   r   r   r   r   r     s    

r   c                       r   )rg  z <VirtualAgent> TwiML Noun c                    r   )Nrg  r   )r	   rg  r
   r   r   r   r   r   r
   d  r   zVirtualAgent.__init__r   r   r   r   r   rg  a  r   rg  c                       r   )rd  z <Autopilot> TwiML Noun c                    r   )Nrd  r   )r	   rd  r
   r   r   r<  r   r   r   r
   l  r   zAutopilot.__init__r   r   r   r   r   rd  i  r   rd  c                       r   )rb  z <Room> TwiML Noun c                    r   )Nrb  r   )r	   rb  r
   r   r   r<  r   r   r   r
   u  r   zRoom.__init__r   r   r   r   r   rb  r  r   rb  )4r   jsontwilio.base.obsoleter   twilio.twimlr   r   r   r   r   r   r   r   r   r   r   rT   r^   r{   r1  r)  r!  r  r  r  r   r   r   r   r   r   rt   rq   ro   rg   rN   rL   rI   r7   r>  r0   r-   r   rX  rU  rP  rC  r^  r   rg  rd  rb  r   r   r   r   <module>   s~      ;	...
   *		   \	   s \)			.	 A				!	M	