
    =hXG                    J   d Z ddlmZ  G d de      Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z	 G d de      Z
 G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z G d+ d,e      Z G d- d.e      Z G d/ d0e      Z G d1 d2e      Z G d3 d4e      Z G d5 d6e      Z G d7 d8e      Z G d9 d:e      Z G d; d<e      Z G d= d>e      Z  G d? d@e      Z! G dA dBe      Z" G dC dDe      Z# G dE dFe      Z$ G dG dHe      Z% G dI dJe      Z& G dK dLe      Z' G dM dNe      Z( G dO dPe      Z) G dQ dRe      Z* G dS dTe      Z+ G dU dVe      Z, G dW dXe      Z- G dY dZe      Z. G d[ d\e      Z/ G d] d^e      Z0 G d_ d`e      Z1 G da dbe      Z2 G dc dde      Z3ye)fza
This code was generated by
\ / _    _  _|   _  _
 | (_)\/(_)(_|\/| |(/_  v1.0.0
      /       /
    )TwiMLc                   h    e Zd ZdZ fdZddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZd Z	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	d Z
d	 Zdd
ZddZ	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZ	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 ddZddZd ZddZ xZS )VoiceResponsez<Response> TwiML for Voicec                 :    t        t        | 
  di | d| _        y )NResponse )superr   __init__nameselfkwargs	__class__s     k/var/www/html/phonemate/phone_mate_backend/venv/lib/python3.12/site-packages/twilio/twiml/voice_response.pyr
   zVoiceResponse.__init__   s    mT+5f5	    c                 <    | j                  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methodr   )nestConnectr   r   r   r   s       r   connectzVoiceResponse.connect   s"     yyHvHHIIr   c                     | j                  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_methodr   )r   Dial)r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r   s                       r   dialzVoiceResponse.dial!   s    ^ yy    	
  . & $   +D 2R 1P "2 $ !0  &!" $#$ *'
 	
r   c                 6    | j                  t        di |      S )zy
        Create a <Echo> element

        :param kwargs: additional attributes

        :returns: <Echo> element
        r   )r   Echor   r   s     r   echozVoiceResponse.echoh        yy((r   c                 F    | j                  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_sidr   )r   Enqueue)	r   r   r   r3   r   r4   r5   r6   r   s	            r   enqueuezVoiceResponse.enqueuer   sA    2 yy 	-! /)	 	
 	
r   c                     | j                  t        di d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|d||      S )a  
        Create a <Gather> element

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

        :returns: <Gather> element
        inputr   r   r   speech_timeoutmax_speech_timeprofanity_filterfinish_on_key
num_digitspartial_result_callbackpartial_result_callback_methodlanguagehintsbarge_indebugaction_on_empty_resultspeech_modelenhancedr   )r   Gather)r   r:   r   r   r   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   r   s                       r   gatherzVoiceResponse.gather   s    ^ yy    	
  . !0 "2 , & )@ 0N "  "   (>!" *#$ "'
 	
r   c                 6    | j                  t        di |      S )z}
        Create a <Hangup> element

        :param kwargs: additional attributes

        :returns: <Hangup> element
        r   )r   Hangupr/   s     r   hangupzVoiceResponse.hangup   s     yy)&)**r   c                 6    | j                  t        di |      S )z{
        Create a <Leave> element

        :param kwargs: additional attributes

        :returns: <Leave> element
        r   )r   Leaver/   s     r   leavezVoiceResponse.leave   s     yy))r   c                 :    | j                  t        dd|i|      S z
        Create a <Pause> element

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

        :returns: <Pause> element
        lengthr   r   Pauser   rS   r   s      r   pausezVoiceResponse.pause         yy7f7788r   c           	      >    | j                  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digitsr   r   Playr   r[   r\   r]   r   s        r   playzVoiceResponse.play   $     yyJ#DJ6JKKr   c           
      B    | j                  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
        )r[   r   reservation_sidpost_work_activity_sidr   Queuer   r   r[   r   re   rf   r   s          r   queuezVoiceResponse.queue  ;    * yy /'= 	
 		
r   c                 P    | j                  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_callbackr   )r   Record)r   r   r   r   r>   rm   rn   r!   r"   r#   r$   ro   rp   r   s                 r   r    zVoiceResponse.record+  sQ    F yy +%#*C1Q0O%$7 
 	
r   c                 <    | j                  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   r[   r   r   s       r   redirectzVoiceResponse.redirect`  s"     yy#?f??@@r   c                 :    | j                  t        dd|i|      S )z
        Create a <Reject> element

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

        :returns: <Reject> element
        reasonr   )r   Reject)r   rv   r   s      r   rejectzVoiceResponse.rejectl  s      yy8v8899r   c           
      @    | j                  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voicer\   rB   r   r   Sayr   r{   r|   r\   rB   r   s         r   sayzVoiceResponse.sayw  +     yyUu4(UfU
 	
r   c                 D    | j                  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   r{   r   r   r   r   r   r   s           r   smszVoiceResponse.sms  s>    . yy / 

 
	
r   c                     | j                  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 <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   r   )r   Pay)r   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   r   s                       r   payzVoiceResponse.pay  s    ^ yy  #4 !0	
 (>   * , ( (> #4  . & , "  (!" "2#$ "'
 	
r   c                 B    | j                  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_inputsr   r   Promptr   r   r   r   r   r   r   s          r   promptzVoiceResponse.prompt  ;    * yy %#(? 	
 		
r   c                 <    | j                  t        d||d|      S )z
        Create a <Start> element

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

        :returns: <Start> element
        r   r   )r   Startr   s       r   startzVoiceResponse.start  "     yyFfVFvFGGr   c                 6    | j                  t        di |      S )zy
        Create a <Stop> element

        :param kwargs: additional attributes

        :returns: <Stop> element
        r   )r   Stopr/   s     r   stopzVoiceResponse.stop  r1   r   c                 <    | j                  t        d||d|      S )z
        Create a <Refer> element

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

        :returns: <Refer> element
        r   r   )r   Referr   s       r   referzVoiceResponse.refer'  r   r   NN)NNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNN)__name__
__module____qualname____doc__r
   r   r,   r0   r8   rJ   rM   rP   rW   ra   rj   r    rt   rx   r   r   r   r   r   r   r   __classcell__r   s   @r   r   r      s   $
J "&)-(,'E
N) $
P  $'+#'E
N+*	9L  #
D "&)-(, 3
j
A	:
& !
J ##'E
R  $
@
H)
Hr   r   c                   (     e Zd ZdZ fdZd Z xZS )r   z<Refer> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zRefer.__init__7      eT#-f-	r   c                 8    | j                  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   s      r   sipz	Refer.sip;  s     yy'4V455r   )r   r   r   r   r
   r   r   r   s   @r   r   r   4  s    	6r   r   c                   "     e Zd ZdZ fdZ xZS )r   z <Sip> TwiML Noun used in <Refer>c                 H    t        t        | 
  di | d| _        || _        y NSipr   )r	   r   r
   r   valuer   r   r   r   s      r   r
   zReferSip.__init__J  s#    h&00	
r   r   r   r   r   r
   r   r   s   @r   r   r   G  s    * r   r   c                   H     e Zd ZdZ fdZ	 	 	 	 	 	 ddZ	 	 	 	 	 ddZ xZS )r   z<Stop> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zStop.__init__S      dD",V,	r   c                 D    | j                  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_namer[   trackr   r   r   r   Streamr   r   r   r[   r   r   r   r   s           r   streamzStop.streamW  >    . yy - /'= 

 
	
r   c                 B    | j                  t        d|||||d|      S a  
        Create a <Siprec> element

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

        :returns: <Siprec> element
        )r   r   r   r   r   r   r   Siprecr   r   r   r   r   r   r   s          r   sipreczStop.siprecz  ;    * yy - /'= 	
 		
r   NNNNNNr   r   r   r   r   r
   r   r   r   r   s   @r   r   r   P  s;     #!
J #
r   r   c                   *     e Zd ZdZ fdZddZ xZS )r   z<Siprec> TwiML Nounc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zSiprec.__init__      fd$.v.	r   c                 <    | j                  t        d||d|      S 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   r   r   	Parameterr   r   r   r   s       r   	parameterzSiprec.parameter  "     yyDEDVDEEr   r   r   r   r   r   r
   r   r   r   s   @r   r   r         
Fr   r   c                   "     e Zd ZdZ fdZ xZS )r   z<Parameter> TwiML Nounc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zParameter.__init__  s    i'1&1	r   r   r   s   @r   r   r     s        r   r   c                   *     e Zd ZdZ fdZddZ xZS )r   z<Stream> TwiML Nounc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zStream.__init__  r   r   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zStream.parameter  r   r   r   r   r   s   @r   r   r     r   r   r   c                   H     e Zd ZdZ fdZ	 	 	 	 	 	 ddZ	 	 	 	 	 ddZ xZS )r   z<Start> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zStart.__init__  r   r   c                 D    | j                  t        d||||||d|      S r   r   r   s           r   r   zStart.stream  r   r   c                 B    | j                  t        d|||||d|      S r   r   r   s          r   r   zStart.siprec  r   r   r   r   r   r   s   @r   r   r     s;     #!
J #
r   r   c                   :     e Zd ZdZ fdZddZddZddZ xZS )	r   z<Prompt> Twiml Verbc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zPrompt.__init__  r   r   c           
      @    | j                  t        d||||d|      S rz   r}   r   s         r   r   z
Prompt.say  r   r   c           	      >    | j                  t        d|||d|      S rZ   r^   r`   s        r   ra   zPrompt.play-  rb   r   c                 :    | j                  t        dd|i|      S rR   rT   rV   s      r   rW   zPrompt.pause:  rX   r   r   r   r   )	r   r   r   r   r
   r   ra   rW   r   r   s   @r   r   r     s    
 L	9r   r   c                   "     e Zd ZdZ fdZ xZS )rU   z<Pause> TwiML Verbc                 :    t        t        | 
  di | d| _        y )NrU   r   )r	   rU   r
   r   r   s     r   r
   zPause.__init__I  r   r   r   r   s   @r   rU   rU   F       r   rU   c                   $     e Zd ZdZd fd	Z xZS )r_   z<Play> TwiML Verbc                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr_   r   )r	   r_   r
   r   r   r   r[   r   r   s      r   r
   zPlay.__init__Q  s+    dD",V,	DJ r   r   r   r   s   @r   r_   r_   N  s     r   r_   c                   t     e Zd ZdZd fd	ZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZ xZS )r~   z<Say> TwiML Verbc                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr~   r   )r	   r~   r
   r   r   r   r{   r   r   s      r   r
   zSay.__init__[  s+    c4!+F+	 DJ r   c                 <    | j                  t        d||d|      S 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timer   r   	SsmlBreakr   r  r  r   s       r   break_z
Say.break_a  "     yyJH4J6JKKr   c                 <    | j                  t        d||d|      S 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levelr   r   SsmlEmphasisr   r  r  r   s       r   emphasiszSay.emphasism  "     yyIEI&IJJr   c                 <    | j                  t        d||d|      S 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_langr   r   SsmlLangr   r  r  r   s       r   langzSay.langy  "     yyKKFKLLr   c                 :    | j                  t        dd|i|      S z
        Create a <P> element

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

        :returns: <P> element
        r  r   r   SsmlPr   r  r   s      r   pzSay.p        yy5U5f566r   c                 >    | j                  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   s        r   phonemezSay.phoneme  $     yyUOX"OOPPr   c           
      @    | j                  t        d||||d|      S 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pitchr   r   SsmlProsodyr   r  r,  r-  r.  r   s         r   prosodyzSay.prosody  +     yyUeFUUfU
 	
r   c                 :    | j                  t        dd|i|      S z
        Create a <S> element

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

        :returns: <S> element
        r  r   r   SsmlSr  s      r   szSay.s  r   r   c                 >    | j                  t        |f||d|      S 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   s        r   say_asz
Say.say_as  )     yyeP,vPP
 	
r   c                 <    | j                  t        |fd|i|      S 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  rD  r   s       r   subzSay.sub  "     yy>e>v>??r   c                 <    | j                  t        d||d|      S 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  roler   r   SsmlWr   r  rL  r   s       r   wzSay.w  "     yy@U@@AAr   r   r   r   r   r   r   r   r
   r  r  r  r  r(  r2  r8  r@  rH  rP  r   r   s   @r   r~   r~   X  sC    !
L
K
M	7Q
 	7

@
Br   r~   c                   T     e Zd ZdZd	 fd	Zd
dZd
dZd
dZddZd
dZ	d	dZ
 xZS )rN  z>Improving Pronunciation by Specifying Parts of Speech in <Say>c                 N    t        t        | 
  di | d| _        |r|| _        y y )NrP  r   )r	   rN  r
   r   r   r   r  r   r   s      r   r
   zSsmlW.__init__  +    eT#-f-	DJ r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlW.break_  r  r   c                 <    | j                  t        d||d|      S r
  r  r  s       r   r  zSsmlW.emphasis  r  r   c                 >    | j                  t        |f||d|      S r"  r%  r'  s        r   r(  zSsmlW.phoneme  r)  r   c           
      @    | j                  t        d||||d|      S r+  r/  r1  s         r   r2  zSsmlW.prosody  r3  r   c                 >    | j                  t        |f||d|      S r:  r=  r?  s        r   r@  zSsmlW.say_as  rA  r   c                 <    | j                  t        |fd|i|      S rC  rE  rG  s       r   rH  z	SsmlW.sub-  rI  r   r   r   r   )r   r   r   r   r
   r  r  r(  r2  r@  rH  r   r   s   @r   rN  rN    s-    H
L
KQ
 

@r   rN  c                   "     e Zd ZdZ fdZ xZS )rF  z/Pronouncing Acronyms and Abbreviations in <Say>c                 H    t        t        | 
  di | d| _        || _        y )NrH  r   )r	   rF  r
   r   r   rU  s      r   r
   zSsmlSub.__init__=  s#    gt%//	
r   r   r   s   @r   rF  rF  :  s    9 r   rF  c                   "     e Zd ZdZ fdZ xZS )r>  z:Controlling How Special Types of Words Are Spoken in <Say>c                 H    t        t        | 
  di | d| _        || _        y )Nzsay-asr   )r	   r>  r
   r   r   rU  s      r   r
   zSsmlSayAs.__init__F  s#    i'1&1	
r   r   r   s   @r   r>  r>  C  s    D r   r>  c                   t     e Zd ZdZd fd	ZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZ xZS )r0  z4Controling Volume, Speaking Rate, and Pitch in <Say>c                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr2  r   )r	   r0  r
   r   r   rU  s      r   r
   zSsmlProsody.__init__O  s+    k4)3F3	DJ r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlProsody.break_U  r  r   c                 <    | j                  t        d||d|      S r
  r  r  s       r   r  zSsmlProsody.emphasisa  r  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlProsody.langm  r  r   c                 :    | j                  t        dd|i|      S r  r  r  s      r   r  zSsmlProsody.py  r   r   c                 >    | j                  t        |f||d|      S r"  r%  r'  s        r   r(  zSsmlProsody.phoneme  r)  r   c           
      @    | j                  t        d||||d|      S r+  r/  r1  s         r   r2  zSsmlProsody.prosody  r3  r   c                 :    | j                  t        dd|i|      S r5  r6  r  s      r   r8  zSsmlProsody.s  r   r   c                 >    | j                  t        |f||d|      S r:  r=  r?  s        r   r@  zSsmlProsody.say_as  rA  r   c                 <    | j                  t        |fd|i|      S rC  rE  rG  s       r   rH  zSsmlProsody.sub  rI  r   c                 <    | j                  t        d||d|      S rK  rM  rO  s       r   rP  zSsmlProsody.w  rQ  r   r   r   r   rR  r   s   @r   r0  r0  L  sC    >
L
K
M	7Q
 	7

@
Br   r0  c                   d     e Zd ZdZd fd	ZddZddZddZddZddZ	ddZ
dd	Zdd
Z xZS )r7  z)Adding A Pause Between Sentences in <Say>c                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr8  r   )r	   r7  r
   r   r   rU  s      r   r
   zSsmlS.__init__  rV  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlS.break_  r  r   c                 <    | j                  t        d||d|      S r
  r  r  s       r   r  zSsmlS.emphasis  r  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  z
SsmlS.lang  r  r   c                 >    | j                  t        |f||d|      S r"  r%  r'  s        r   r(  zSsmlS.phoneme  r)  r   c           
      @    | j                  t        d||||d|      S r+  r/  r1  s         r   r2  zSsmlS.prosody  r3  r   c                 >    | j                  t        |f||d|      S r:  r=  r?  s        r   r@  zSsmlS.say_as  rA  r   c                 <    | j                  t        |fd|i|      S rC  rE  rG  s       r   rH  z	SsmlS.sub-  rI  r   c                 <    | j                  t        d||d|      S rK  rM  rO  s       r   rP  zSsmlS.w9  rQ  r   r   r   r   r   r   r   r   r
   r  r  r  r(  r2  r@  rH  rP  r   r   s   @r   r7  r7    s9    3
L
K
MQ
 

@
Br   r7  c                   "     e Zd ZdZ fdZ xZS )r&  z%Using Phonetic Pronunciation in <Say>c                 H    t        t        | 
  di | d| _        || _        y )Nr(  r   )r	   r&  r
   r   r   rU  s      r   r
   zSsmlPhoneme.__init__I  s#    k4)3F3	
r   r   r   s   @r   r&  r&  F  s    / r   r&  c                   t     e Zd ZdZd fd	ZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZ xZS )r  z7Specifying Another Language for Specific Words in <Say>c                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr  r   )r	   r  r
   r   r   rU  s      r   r
   zSsmlLang.__init__R  s+    h&00	DJ r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlLang.break_X  r  r   c                 <    | j                  t        d||d|      S r
  r  r  s       r   r  zSsmlLang.emphasisd  r  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlLang.langp  r  r   c                 :    | j                  t        dd|i|      S r  r  r  s      r   r  z
SsmlLang.p|  r   r   c                 >    | j                  t        |f||d|      S r"  r%  r'  s        r   r(  zSsmlLang.phoneme  r)  r   c           
      @    | j                  t        d||||d|      S r+  r/  r1  s         r   r2  zSsmlLang.prosody  r3  r   c                 :    | j                  t        dd|i|      S r5  r6  r  s      r   r8  z
SsmlLang.s  r   r   c                 >    | j                  t        |f||d|      S r:  r=  r?  s        r   r@  zSsmlLang.say_as  rA  r   c                 <    | j                  t        |fd|i|      S rC  rE  rG  s       r   rH  zSsmlLang.sub  rI  r   c                 <    | j                  t        d||d|      S rK  rM  rO  s       r   rP  z
SsmlLang.w  rQ  r   r   r   r   rR  r   s   @r   r  r  O  sC    A
L
K
M	7Q
 	7

@
Br   r  c                   l     e Zd ZdZd fd	ZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZ xZS )r  z*Adding a Pause Between Paragraphs in <Say>c                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr  r   )r	   r  r
   r   r   rU  s      r   r
   zSsmlP.__init__  rV  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlP.break_  r  r   c                 <    | j                  t        d||d|      S r
  r  r  s       r   r  zSsmlP.emphasis  r  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  z
SsmlP.lang  r  r   c                 >    | j                  t        |f||d|      S r"  r%  r'  s        r   r(  zSsmlP.phoneme  r)  r   c           
      @    | j                  t        d||||d|      S r+  r/  r1  s         r   r2  zSsmlP.prosody  r3  r   c                 :    | j                  t        dd|i|      S r5  r6  r  s      r   r8  zSsmlP.s!  r   r   c                 >    | j                  t        |f||d|      S r:  r=  r?  s        r   r@  zSsmlP.say_as,  rA  r   c                 <    | j                  t        |fd|i|      S rC  rE  rG  s       r   rH  z	SsmlP.sub;  rI  r   c                 <    | j                  t        d||d|      S rK  rM  rO  s       r   rP  zSsmlP.wG  rQ  r   r   r   r   )r   r   r   r   r
   r  r  r  r(  r2  r8  r@  rH  rP  r   r   s   @r   r  r    s>    4
L
K
MQ
 	7

@
Br   r  c                   d     e Zd ZdZd fd	ZddZddZddZddZddZ	ddZ
dd	Zdd
Z xZS )r  zEmphasizing Words in <Say>c                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr  r   )r	   r  r
   r   r   rU  s      r   r
   zSsmlEmphasis.__init__W  s+    lD*4V4	DJ r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlEmphasis.break_]  r  r   c                 <    | j                  t        d||d|      S r
  r  r  s       r   r  zSsmlEmphasis.emphasisi  r  r   c                 <    | j                  t        d||d|      S r  r  r  s       r   r  zSsmlEmphasis.langu  r  r   c                 >    | j                  t        |f||d|      S r"  r%  r'  s        r   r(  zSsmlEmphasis.phoneme  r)  r   c           
      @    | j                  t        d||||d|      S r+  r/  r1  s         r   r2  zSsmlEmphasis.prosody  r3  r   c                 >    | j                  t        |f||d|      S r:  r=  r?  s        r   r@  zSsmlEmphasis.say_as  rA  r   c                 <    | j                  t        |fd|i|      S rC  rE  rG  s       r   rH  zSsmlEmphasis.sub  rI  r   c                 <    | j                  t        d||d|      S rK  rM  rO  s       r   rP  zSsmlEmphasis.w  rQ  r   r   r   r   rw  r   s   @r   r  r  T  s9    $
L
K
MQ
 

@
Br   r  c                   "     e Zd ZdZ fdZ xZS )r  zAdding a Pause in <Say>c                 :    t        t        | 
  di | d| _        y )Nbreakr   )r	   r  r
   r   r   s     r   r
   zSsmlBreak.__init__  s    i'1&1	r   r   r   s   @r   r  r    s    ! r   r  c                   <     e Zd ZdZ fdZ	 	 	 	 	 ddZddZ xZS )r   z<Pay> Twiml Verbc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zPay.__init__  s    c4!+F+	r   c                 B    | j                  t        d|||||d|      S r   r   r   s          r   r   z
Pay.prompt  r   r   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zPay.parameter  r   r   r   r   )r   r   r   r   r
   r   r   r   r   s   @r   r   r     s(      $
@
Fr   r   c                   "     e Zd ZdZ fdZ xZS )r   z<Sms> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr   r   )r	   r   r
   r   r   r   s      r   r
   zSms.__init__  #    c4!+F+	
r   r   r   s   @r   r   r          r   r   c                   *     e Zd ZdZ fdZddZ xZS )rw   z<Reject> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nrw   r   )r	   rw   r
   r   r   s     r   r
   zReject.__init__  r   r   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zReject.parameter  r   r   r   r   r   s   @r   rw   rw     r   r   rw   c                   "     e Zd ZdZ fdZ xZS )rs   z<Redirect> TwiML Verbc                 H    t        t        | 
  di | d| _        || _        y )Nrs   r   )r	   rs   r
   r   r   r   s      r   r
   zRedirect.__init__"  s#    h&00	
r   r   r   s   @r   rs   rs     s     r   rs   c                   "     e Zd ZdZ fdZ xZS )rq   z<Record> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nrq   r   )r	   rq   r
   r   r   s     r   r
   zRecord.__init__+  r   r   r   r   s   @r   rq   rq   (       r   rq   c                   "     e Zd ZdZ fdZ xZS )rh   z<Queue> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nrh   r   )r	   rh   r
   r   r   r   r   r   r   s      r   r
   zQueue.__init__3  s#    eT#-f-	
r   r   r   s   @r   rh   rh   0  s     r   rh   c                   "     e Zd ZdZ fdZ xZS )rO   z<Leave> TwiML Verbc                 :    t        t        | 
  di | d| _        y )NrO   r   )r	   rO   r
   r   r   s     r   r
   zLeave.__init__<  r   r   r   r   s   @r   rO   rO   9  r   r   rO   c                   *     e Zd ZdZ fdZddZ xZS )rL   z<Hangup> TwiML Verbc                 :    t        t        | 
  di | d| _        y )NrL   r   )r	   rL   r
   r   r   s     r   r
   zHangup.__init__D  r   r   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zHangup.parameterH  r   r   r   r   r   s   @r   rL   rL   A  r   r   rL   c                   :     e Zd ZdZ fdZddZddZddZ xZS )	rI   z<Gather> TwiML Verbc                 :    t        t        | 
  di | d| _        y )NrI   r   )r	   rI   r
   r   r   s     r   r
   zGather.__init__X  r   r   c           
      @    | j                  t        d||||d|      S rz   r}   r   s         r   r   z
Gather.say\  r   r   c                 :    | j                  t        dd|i|      S rR   rT   rV   s      r   rW   zGather.pausel  rX   r   c           	      >    | j                  t        d|||d|      S rZ   r^   r`   s        r   ra   zGather.playw  rb   r   r   r   r   )	r   r   r   r   r
   r   rW   ra   r   r   s   @r   rI   rI   U  s    
 	9Lr   rI   c                   ,     e Zd ZdZd fd	ZddZ xZS )r7   z<Enqueue> TwiML Nounc                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr7   r   )r	   r7   r
   r   r   r  s      r   r
   zEnqueue.__init__  s+    gt%//	DJ r   c                 >    | j                  t        |f||d|      S )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   s        r   taskzEnqueue.task  s$     yydQXwQ&QRRr   r   r   )r   r   r   r   r
   r  r   r   s   @r   r7   r7     s    Sr   r7   c                   "     e Zd ZdZ fdZ xZS )r  z<Task> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zTask.__init__  #    dD",V,	
r   r   r   s   @r   r  r         r   r  c                   "     e Zd ZdZ fdZ xZS )r.   z<Echo> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nr.   r   )r	   r.   r
   r   r   s     r   r
   zEcho.__init__  r   r   r   r   s   @r   r.   r.     s     r   r.   c                        e Zd ZdZd
 fd	Z	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 ddZd Z		 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ
	 	 	 	 	 	 	 	 dd	Z xZS )r+   z<Dial> TwiML Verbc                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr+   r   )r	   r+   r
   r   r   )r   r   r   r   s      r   r
   zDial.__init__  s+    dD",V,	DJ r   c                 D    | j                  t        d||||||d|      S )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
        )identityr[   r   status_callback_eventr   r   r   )r   Client)r   r  r[   r   r  r   r   r   s           r   clientzDial.client  s>    . yy !&; /'= 

 
	
r   c                     | j                  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!   r  r   r   r"   r#   r$   event_callback_urljitter_buffer_sizeparticipant_label)r   
Conference)r   r   r  r  r  r  r4   r  r  r    r  r  r!   r  r   r   r"   r#   r$   r  r  r  r   s                          r   
conferencezDial.conference  s    j yy  +D	
 (> " ( "2     '< !0 (>  +D!" 2R#$ 1P%& $6'( $6)* #4-
 	
r   c                 V    | j                  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_digitsr[   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_numberr  r[   r   r  r   r   r  r  r  r  r  r  r  r  r   s                    r   r   zDial.number)  sZ    R yy'&; /'="3+E$7*C3U7]2S  !
 	
r   c           
      B    | j                  t        |f||||d|      S rd   rg   ri   s          r   rj   z
Dial.queueg  rk   r   c                 8    | j                  t        |fi |      S )z
        Create a <Sim> element

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

        :returns: <Sim> element
        )r   Sim)r   sim_sidr   s      r   simzDial.sim  s     yyW//00r   c                 V    | j                  t        |f||||||||	|
|||||d|      S )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passwordr[   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  r  r  r  r   s                    r   r   zDial.sip  sZ    R yy!!&; /'="3+E$7*C3U7]2S  !
 	
r   c	                 H    | j                  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_sidr[   r   r  r   r   customer_idcopy_parent_tor   )r   Application)
r   r  r[   r   r  r   r   r  r  r   s
             r   applicationzDial.application  sD    6 yy 
 /&; /'='-
 

 	
r   r   r   )NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr   )NNNNNNNN)r   r   r   r   r
   r  r  r   rj   r  r   r  r   r   s   @r   r+   r+     s     "#!
L "&#"#"&)-(,-N
f "##' "&+//3*.!<
B #
@	1 "##' "&+//3*.!<
@ "#'
r   r+   c                   2     e Zd ZdZd fd	Zd ZddZ xZS )r  z<Application> TwiML Nounc                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zApplication.__init__  s+    k4)3F3!	(DJ r   c                 8    | j                  t        |fi |      S )z
        Create a <ApplicationSid> element

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

        :returns: <ApplicationSid> element
        )r   ApplicationSid)r   sidr   s      r   r  zApplication.application_sid	  s     yy6v677r   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zApplication.parameter	  r   r   r   r   )r   r   r   r   r
   r  r   r   r   s   @r   r  r    s    ")	8
Fr   r  c                   "     e Zd ZdZ fdZ xZS )r  z<ApplicationSid> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zApplicationSid.__init__	  s#    nd,6v6$	
r   r   r   s   @r   r  r  	  s    % r   r  c                   "     e Zd ZdZ fdZ xZS )r   z<Sip> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y r   )r	   r   r
   r   r   r   s      r   r
   zSip.__init__'	  r  r   r   r   s   @r   r   r   $	  r  r   r   c                   "     e Zd ZdZ fdZ xZS )r  z<Sim> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zSim.__init__0	  r  r   r   r   s   @r   r  r  -	  r  r   r  c                   "     e Zd ZdZ fdZ xZS )r  z<Number> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zNumber.__init__9	  s#    fd$.v.	!
r   r   r   s   @r   r  r  6	  s    " "r   r  c                   "     e Zd ZdZ fdZ xZS )r  z<Conference> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   r  s      r   r
   zConference.__init__B	  s#    j$(262 	
r   r   r   s   @r   r  r  ?	  s    ! r   r  c                   2     e Zd ZdZd fd	Zd ZddZ xZS )r  z<Client> TwiML Nounc                 N    t        t        | 
  di | d| _        |r|| _        y y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zClient.__init__K	  s+    fd$.v.	!DJ r   c                 8    | j                  t        |fi |      S )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   s      r   r  zClient.identityQ	  s     yy/<V<==r   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zClient.parameter\	  r   r   r   r   )r   r   r   r   r
   r  r   r   r   s   @r   r  r  H	  s    "	>
Fr   r  c                   "     e Zd ZdZ fdZ xZS )r  z<Identity> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zIdentity.__init__l	  s#    h&00	$
r   r   r   s   @r   r  r  i	  s    % %r   r  c                   z     e Zd ZdZ fdZddZd Z	 	 	 	 	 	 d	dZ	 	 	 	 	 d
dZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 xZ
S )r   z<Connect> TwiML Verbc                 :    t        t        | 
  di | d| _        y )Nr   r   )r	   r   r
   r   r   s     r   r
   zConnect.__init__u	  s    gt%//	r   c                 <    | j                  t        |fd|i|      S )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   r  r   s       r   roomzConnect.roomy	  s(     yyK,@KFK
 	
r   c                 8    | j                  t        |fi |      S )z
        Create a <Autopilot> element

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

        :returns: <Autopilot> element
        )r   	Autopilot)r   r   r   s      r   	autopilotzConnect.autopilot	  s     yy426233r   c                 D    | j                  t        d||||||d|      S r   r   r   s           r   r   zConnect.stream	  r   r   c                 B    | j                  t        d|||||d|      S )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   rB   sentiment_analysisr   r   r   )r   VirtualAgent)r   r   rB   r  r   r   r   s          r   virtual_agentzConnect.virtual_agent	  s;    * yy -!#5 /'= 	
 		
r   c                 T    | j                  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_timeoutr[   r   r    r!   r"   r#   r$   r   r   r  r   )r   Conversation)r   r  r   r!  r"  r[   r   r    r!   r"   r#   r$   r   r   r  r   s                   r   conversationzConnect.conversation	  sW    N yy %9%9+E /*C1Q0O /'=&; 
 	
r   r   r   r   r  )r   r   r   r   r
   r  r  r   r  r$  r   r   s   @r   r   r   r	  sw    
	4 #!
J #
D "!#'"&)-(,#"9
r   r   c                   "     e Zd ZdZ fdZ xZS )r#  z<Conversation> TwiML Nounc                 :    t        t        | 
  di | d| _        y )Nr#  r   )r	   r#  r
   r   r   s     r   r
   zConversation.__init__
      lD*4V4"	r   r   r   s   @r   r#  r#  
  s    ## #r   r#  c                   2     e Zd ZdZ fdZddZddZ xZS )r  z<VirtualAgent> TwiML Nounc                 :    t        t        | 
  di | d| _        y )Nr  r   )r	   r  r
   r   r   s     r   r
   zVirtualAgent.__init__
  r'  r   c                 <    | j                  t        d||d|      S )z
        Create a <Config> element

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

        :returns: <Config> element
        r   r   )r   Configr   s       r   configzVirtualAgent.config 
  s"     yyATA&ABBr   c                 <    | j                  t        d||d|      S r   r   r   s       r   r   zVirtualAgent.parameter,
  r   r   r   )r   r   r   r   r
   r,  r   r   r   s   @r   r  r  
  s    ##
C
Fr   r  c                   "     e Zd ZdZ fdZ xZS )r+  z<Config> TwiML Nounc                 :    t        t        | 
  di | d| _        y )Nr+  r   )r	   r+  r
   r   r   s     r   r
   zConfig.__init__<
  r   r   r   r   s   @r   r+  r+  9
  r  r   r+  c                   "     e Zd ZdZ fdZ xZS )r  z<Autopilot> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   r  s      r   r
   zAutopilot.__init__D
  s#    i'1&1	
r   r   r   s   @r   r  r  A
  s      r   r  c                   "     e Zd ZdZ fdZ xZS )r  z<Room> TwiML Nounc                 H    t        t        | 
  di | d| _        || _        y )Nr  r   )r	   r  r
   r   r   r  s      r   r
   zRoom.__init__M
  r  r   r   r   s   @r   r  r  J
  r  r   r  N)4r   twilio.twimlr   r   r   r   r   r   r   r   r   r   rU   r_   r~   rN  rF  r>  r0  r7  r&  r  r  r  r  r   r   rw   rs   rq   rh   rO   rL   rI   r7   r  r.   r+   r  r  r   r  r  r  r  r  r   r#  r  r+  r  r  r   r   r   <module>r5     s  
cHE cHL6E 6&u H
5 H
VFU F(   FU F(H
E H
V-9U -9`E 5 EB% EBPW@E W@te  EB% EBPoBE oBd% EBu EBPzBE zBzoB5 oBd 1F% 1Fh% FU F(u U E E FU F(-LU -L`Se S.5 5 J
5 J
Z
F% FBU % % "U " FU FB%u %\
e \
~#5 #F5 F@U  5 r   