
    p h΂                       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          Z3 G de dfe          Z4 G dg dhe          Z5 G di dje          Z6 G dk dle          Z7dmS )nza
This code was generated by
\ / _    _  _|   _  _
 | (_)\/(_)(_|\/| |(/_  v1.0.0
      /       /
    )TwiMLc                   j    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                 V     t          t          |           j        di | d| _        d S )NResponse )superr   __init__nameselfkwargs	__class__s     W/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/twilio/twiml/voice_response.pyr
   zVoiceResponse.__init__   s1    +mT""+55f555			    Nc                 F    |                      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HHIIIr   c                     |                      t          di d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|d|d||          S )a  
        Create a <Dial> element

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

        :returns: <Dial> element
        numberr   r   timeouthangup_on_star
time_limit	caller_idrecordtrimrecording_status_callback recording_status_callback_methodrecording_status_callback_eventanswer_on_bridge	ring_tonerecording_track
sequential	refer_urlrefer_methodeventsr   )r   Dial)r   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   b yy   vv v  	
  .~ &: $) v T +D*C 2R1Q 1P0O "2!1 $) !0  &:!" $)#$ *\%& v) 
 
 	
r   c                 @    |                      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.echok         yy(((r   c                 P    |                      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   r4   r   r5   r6   r7   r   s	            r   enqueuezVoiceResponse.enqueueu   sP    2 yy 	-! /)	 	 	 	
 
 	
r   c                     |                      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@   rA   rB   rC   rD   rE   rF   rG   rH   rI   r   s                       r   gatherzVoiceResponse.gather   s   ^ yy   ev v  	
  .~ !0 "2!1 ,m &: )@(? 0N/M " e " e  (>'=!" *\#$ "' 
 
 	
r   c                 @    |                      t          di |          S )z}
        Create a <Hangup> element

        :param kwargs: additional attributes

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

        :param kwargs: additional attributes

        :returns: <Leave> element
        r   )r   Leaver0   s     r   leavezVoiceResponse.leave   s      yy)))r   c                 D    |                      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   rT   r   s      r   pausezVoiceResponse.pause   )     yy77f777888r   c           	      H    |                      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JJ6JJKKKr   c           
      L    |                      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   rf   rg   r   s          r   queuezVoiceResponse.queue  J    * yy /'=   	
 	
 		
r   c                 Z    |                      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?   rn   ro   r!   r"   r#   r$   rp   rq   r   s                 r   r    zVoiceResponse.record.  s`    F yy +%#*C1Q0O%$7   
 
 	
r   c                 F    |                      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.redirectc  s+     yy#??f???@@@r   c                 D    |                      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   rw   r   s      r   rejectzVoiceResponse.rejecto  s)     yy88v8889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]   rC   r   r   Sayr   r|   r}   r]   rC   r   s         r   sayzVoiceResponse.sayz  6     yyUu4(UUfUU
 
 	
r   c                 N    |                      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  sM    . yy /   

 

 
	
r   c                     |                      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_typesrC   r   )r   Pay)r   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rC   r   s                       r   payzVoiceResponse.pay  s   ^ yy   ev #4"3 !0	
 (>'=   *\ ,m (K (>'= #4"3  .~ &: ,m "  (K!" "2!1#$ "' 
 
 	
r   c                 L    |                      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  J    * yy %#(?   	
 	
 		
r   c                 F    |                      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FFvFFGGGr   c                 @    |                      t          di |          S )zy
        Create a <Stop> element

        :param kwargs: additional attributes

        :returns: <Stop> element
        r   )r   Stopr0   s     r   stopzVoiceResponse.stop   r2   r   c                 F    |                      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)NNNNNNNNNNNNNNNNNNN)NNNNNNN)NNNNNNNNNNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNN)__name__
__module____qualname____doc__r
   r   r-   r1   r9   rK   rN   rQ   rX   rb   rk   r    ru   ry   r   r   r   r   r   r   r   __classcell__r   s   @r   r   r      s       $$    
J 
J 
J 
J "&)-(,)H
 H
 H
 H
T) ) ) $
 $
 $
 $
P  $'+#'E
 E
 E
 E
N+ + +* * *	9 	9 	9 	9L L L L  #
 
 
 
D "&)-(, 3
 3
 3
 3
j
A 
A 
A 
A	: 	: 	: 	:
 
 
 
& !
 !
 !
 !
J ##'E
 E
 E
 E
R  $
 
 
 
@
H 
H 
H 
H) ) )
H 
H 
H 
H 
H 
H 
H 
Hr   r   c                   (     e Zd ZdZ fdZd Z xZS )r   z<Refer> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zRefer.__init__:  1    #eT#--f---			r   c                 B    |                      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'44V44555r   )r   r   r   r   r
   r   r   r   s   @r   r   r   7  sM            	6 	6 	6 	6 	6 	6 	6r   r   c                   "     e Zd ZdZ fdZ xZS )r   z <Sip> TwiML Noun used in <Refer>c                 d     t          t          |           j        di | d| _        || _        d S NSipr   )r	   r   r
   r   valuer   r   r   r   s      r   r
   zReferSip.__init__M  s8    &h&00000	


r   r   r   r   r   r
   r   r   s   @r   r   r   J  s>        **        r   r   c                   l     e Zd ZdZ fdZ	 	 	 	 	 	 ddZ	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	dZ xZS )
r   z<Stop> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zStop.__init__V  1    "dD",,V,,,			r   Nc                 N    |                      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.streamZ  M    . yy - /'=   

 

 
	
r   c                 L    |                      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.siprec}  J    * yy - /'=   	
 	
 		
r   c                 ^    |                      t          d|||||||||	|
||||d|          S a  
        Create a <Transcription> element

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

        :returns: <Transcription> element
        )r   r   status_callback_urlr   inbound_track_labeloutbound_track_labelpartial_resultslanguage_codetranscription_enginer>   rH   rD   enable_automatic_punctuationintelligence_servicer   r   Transcriptionr   r   r   r   r   r   r   r   r   r   r>   rH   rD   r   r   r   s                   r   transcriptionzStop.transcription  f    N yy $7'=$7%9 /+%9!1)-I%9   
 
 	
r   NNNNNNr   NNNNNNNNNNNNNN	r   r   r   r   r
   r   r   r   r   r   s   @r   r   r   S  s             #!
 !
 !
 !
J #
 
 
 
D  # !!%)!9
 9
 9
 9
 9
 9
 9
 9
r   r   c                   2     e Zd ZdZ fdZddZddZ xZS )r   z<Transcription> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zTranscription.__init__  s1    +mT""+55f555#			r   Nc                 F    |                      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   r   Configr   r   r   r   s       r   configzTranscription.config  +     yyATAA&AABBBr   c                 F    |                      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   	Parameterr   s       r   	parameterzTranscription.parameter  +     yyDEDDVDDEEEr   r   r   r   r   r   r
   r   r   r   r   s   @r   r   r     sr        $$$ $ $ $ $
C 
C 
C 
C
F 
F 
F 
F 
F 
F 
F 
Fr   r   c                   "     e Zd ZdZ fdZ xZS )r   z<Parameter> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zParameter.__init__  1    'i'11&111			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<Config> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zConfig.__init__  1    $fd$..v...			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 )r   z<Siprec> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zSiprec.__init__  r  r   Nc                 F    |                      t          d||d|          S r   r   r   s       r   r   zSiprec.parameter  r   r   r   r   r   r   r   r
   r   r   r   s   @r   r   r   	  Z            
F 
F 
F 
F 
F 
F 
F 
Fr   r   c                   *     e Zd ZdZ fdZddZ xZS )r   z<Stream> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zStream.__init__   r  r   Nc                 F    |                      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                   l     e Zd ZdZ fdZ	 	 	 	 	 	 ddZ	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	dZ xZS )
r   z<Start> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zStart.__init__4  r   r   Nc                 N    |                      t          d||||||d|          S r   r   r   s           r   r   zStart.stream8  r   r   c                 L    |                      t          d|||||d|          S r   r   r   s          r   r   zStart.siprec[  r   r   c                 ^    |                      t          d|||||||||	|
||||d|          S r   r   r   s                   r   r   zStart.transcription{  r   r   r   r   r   r   r   s   @r   r   r   1  s             #!
 !
 !
 !
J #
 
 
 
D  # !!%)!9
 9
 9
 9
 9
 9
 9
 9
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                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zPrompt.__init__  r  r   Nc           
      J    |                      t          d||||d|          S r{   r~   r   s         r   r   z
Prompt.say  r   r   c           	      H    |                      t          d|||d|          S r[   r_   ra   s        r   rb   zPrompt.play  rc   r   c                 D    |                      t          dd|i|          S rS   rU   rW   s      r   rX   zPrompt.pause  rY   r   r   r   r   )	r   r   r   r   r
   r   rb   rX   r   r   s   @r   r   r     s~            
 
 
 
 L L L L	9 	9 	9 	9 	9 	9 	9 	9r   r   c                   "     e Zd ZdZ fdZ xZS )rV   z<Pause> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )NrV   r   )r	   rV   r
   r   r   s     r   r
   zPause.__init__  r   r   r   r   s   @r   rV   rV     >                r   rV   c                   $     e Zd ZdZd fd	Z xZS )r`   z<Play> TwiML VerbNc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr`   r   )r	   r`   r
   r   r   r   r\   r   r   s      r   r
   zPlay.__init__  sJ    "dD",,V,,,	 	DJJJ	 	r   r   r   r   s   @r   r`   r`     sC                 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 VerbNc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr   r   )r	   r   r
   r   r   r   r|   r   r   s      r   r
   zSay.__init__  sJ    !c4!++F+++	 	! DJJJ	! 	!r   c                 F    |                      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_  +     yyJH4JJ6JJKKKr   c                 F    |                      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.emphasis  +     yyIEII&IIJJJr   c                 F    |                      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+  r4  r   s       r   langzSay.lang  +     yyKKKFKKLLLr   c                 D    |                      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55U5f55666r   c                 H    |                      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+  rC  rD  r   s        r   phonemezSay.phoneme1  -     yyUOX"OOOOP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+  rL  rM  rN  r   s         r   prosodyzSay.prosody>  6     yyUeFUUUfUU
 
 	
r   c                 D    |                      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.sN  r@  r   c                 H    |                      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_asY  4     yyeP,vPPPP
 
 	
r   c                 F    |                      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.subh  +     yy>>e>v>>???r   c                 F    |                      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.wt  +     yy@U@@@@AAAr   r   r   r   r   r   r   r   r
   r'  r0  r8  r?  rH  rR  rX  r`  rh  rp  r   r   s   @r   r   r     s'       ! ! ! ! ! !
L 
L 
L 
L
K 
K 
K 
K
M 
M 
M 
M	7 	7 	7 	7Q Q Q Q
 
 
 
 	7 	7 	7 	7
 
 
 

@ 
@ 
@ 
@
B 
B 
B 
B 
B 
B 
B 
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>Nc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nrp  r   )r	   rn  r
   r   r   r   r+  r   r   s      r   r
   zSsmlW.__init__  J    #eT#--f---	 	DJJJ	 	r   c                 F    |                      t          d||d|          S r!  r$  r&  s       r   r'  zSsmlW.break_  r(  r   c                 F    |                      t          d||d|          S r*  r-  r/  s       r   r0  zSsmlW.emphasis  r1  r   c                 H    |                      t          |f||d|          S rB  rE  rG  s        r   rH  zSsmlW.phoneme  rI  r   c           
      J    |                      t          d||||d|          S rK  rO  rQ  s         r   rR  zSsmlW.prosody  rS  r   c                 H    |                      t          |f||d|          S rZ  r]  r_  s        r   r`  zSsmlW.say_as  ra  r   c                 F    |                      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'  r0  rH  rR  r`  rh  r   r   s   @r   rn  rn    s        HH     
L 
L 
L 
L
K 
K 
K 
KQ Q Q 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                 d     t          t          |           j        di | d| _        || _        d S )Nrh  r   )r	   rf  r
   r   r   ru  s      r   r
   zSsmlSub.__init__  s8    %gt%/////	


r   r   r   s   @r   rf  rf    s>        9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                 d     t          t          |           j        di | d| _        || _        d S )Nzsay-asr   )r	   r^  r
   r   r   ru  s      r   r
   zSsmlSayAs.__init__  s8    'i'11&111	


r   r   r   s   @r   r^  r^    s>        D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 )rP  z4Controling Volume, Speaking Rate, and Pitch in <Say>Nc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )NrR  r   )r	   rP  r
   r   r   ru  s      r   r
   zSsmlProsody.__init__  sJ    )k4  )33F333	 	DJJJ	 	r   c                 F    |                      t          d||d|          S r!  r$  r&  s       r   r'  zSsmlProsody.break_  r(  r   c                 F    |                      t          d||d|          S r*  r-  r/  s       r   r0  zSsmlProsody.emphasis  r1  r   c                 F    |                      t          d||d|          S r3  r5  r7  s       r   r8  zSsmlProsody.lang  r9  r   c                 D    |                      t          dd|i|          S r;  r<  r>  s      r   r?  zSsmlProsody.p  r@  r   c                 H    |                      t          |f||d|          S rB  rE  rG  s        r   rH  zSsmlProsody.phoneme%  rI  r   c           
      J    |                      t          d||||d|          S rK  rO  rQ  s         r   rR  zSsmlProsody.prosody2  rS  r   c                 D    |                      t          dd|i|          S rU  rV  r>  s      r   rX  zSsmlProsody.sB  r@  r   c                 H    |                      t          |f||d|          S rZ  r]  r_  s        r   r`  zSsmlProsody.say_asM  ra  r   c                 F    |                      t          |fd|i|          S rc  re  rg  s       r   rh  zSsmlProsody.sub\  ri  r   c                 F    |                      t          d||d|          S rk  rm  ro  s       r   rp  zSsmlProsody.wh  rq  r   r   r   r   rr  r   s   @r   rP  rP    s'       >>     
L 
L 
L 
L
K 
K 
K 
K
M 
M 
M 
M	7 	7 	7 	7Q Q Q Q
 
 
 
 	7 	7 	7 	7
 
 
 

@ 
@ 
@ 
@
B 
B 
B 
B 
B 
B 
B 
Br   rP  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 )rW  z)Adding A Pause Between Sentences in <Say>Nc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )NrX  r   )r	   rW  r
   r   r   ru  s      r   r
   zSsmlS.__init__x  rv  r   c                 F    |                      t          d||d|          S r!  r$  r&  s       r   r'  zSsmlS.break_~  r(  r   c                 F    |                      t          d||d|          S r*  r-  r/  s       r   r0  zSsmlS.emphasis  r1  r   c                 F    |                      t          d||d|          S r3  r5  r7  s       r   r8  z
SsmlS.lang  r9  r   c                 H    |                      t          |f||d|          S rB  rE  rG  s        r   rH  zSsmlS.phoneme  rI  r   c           
      J    |                      t          d||||d|          S rK  rO  rQ  s         r   rR  zSsmlS.prosody  rS  r   c                 H    |                      t          |f||d|          S rZ  r]  r_  s        r   r`  zSsmlS.say_as  ra  r   c                 F    |                      t          |fd|i|          S rc  re  rg  s       r   rh  z	SsmlS.sub  ri  r   c                 F    |                      t          d||d|          S rk  rm  ro  s       r   rp  zSsmlS.w  rq  r   r   r   r   r   r   r   r   r
   r'  r0  r8  rH  rR  r`  rh  rp  r   r   s   @r   rW  rW  u  s        33     
L 
L 
L 
L
K 
K 
K 
K
M 
M 
M 
MQ Q Q Q
 
 
 
 
 
 
 

@ 
@ 
@ 
@
B 
B 
B 
B 
B 
B 
B 
Br   rW  c                   "     e Zd ZdZ fdZ xZS )rF  z%Using Phonetic Pronunciation in <Say>c                 d     t          t          |           j        di | d| _        || _        d S )NrH  r   )r	   rF  r
   r   r   ru  s      r   r
   zSsmlPhoneme.__init__  s8    )k4  )33F333	


r   r   r   s   @r   rF  rF    s>        //        r   rF  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 )r6  z7Specifying Another Language for Specific Words in <Say>Nc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr8  r   )r	   r6  r
   r   r   ru  s      r   r
   zSsmlLang.__init__  sJ    &h&00000	 	DJJJ	 	r   c                 F    |                      t          d||d|          S r!  r$  r&  s       r   r'  zSsmlLang.break_  r(  r   c                 F    |                      t          d||d|          S r*  r-  r/  s       r   r0  zSsmlLang.emphasis  r1  r   c                 F    |                      t          d||d|          S r3  r5  r7  s       r   r8  zSsmlLang.lang  r9  r   c                 D    |                      t          dd|i|          S r;  r<  r>  s      r   r?  z
SsmlLang.p  r@  r   c                 H    |                      t          |f||d|          S rB  rE  rG  s        r   rH  zSsmlLang.phoneme(  rI  r   c           
      J    |                      t          d||||d|          S rK  rO  rQ  s         r   rR  zSsmlLang.prosody5  rS  r   c                 D    |                      t          dd|i|          S rU  rV  r>  s      r   rX  z
SsmlLang.sE  r@  r   c                 H    |                      t          |f||d|          S rZ  r]  r_  s        r   r`  zSsmlLang.say_asP  ra  r   c                 F    |                      t          |fd|i|          S rc  re  rg  s       r   rh  zSsmlLang.sub_  ri  r   c                 F    |                      t          d||d|          S rk  rm  ro  s       r   rp  z
SsmlLang.wk  rq  r   r   r   r   rr  r   s   @r   r6  r6    s'       AA     
L 
L 
L 
L
K 
K 
K 
K
M 
M 
M 
M	7 	7 	7 	7Q Q Q Q
 
 
 
 	7 	7 	7 	7
 
 
 

@ 
@ 
@ 
@
B 
B 
B 
B 
B 
B 
B 
Br   r6  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>Nc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr?  r   )r	   r=  r
   r   r   ru  s      r   r
   zSsmlP.__init__{  rv  r   c                 F    |                      t          d||d|          S r!  r$  r&  s       r   r'  zSsmlP.break_  r(  r   c                 F    |                      t          d||d|          S r*  r-  r/  s       r   r0  zSsmlP.emphasis  r1  r   c                 F    |                      t          d||d|          S r3  r5  r7  s       r   r8  z
SsmlP.lang  r9  r   c                 H    |                      t          |f||d|          S rB  rE  rG  s        r   rH  zSsmlP.phoneme  rI  r   c           
      J    |                      t          d||||d|          S rK  rO  rQ  s         r   rR  zSsmlP.prosody  rS  r   c                 D    |                      t          dd|i|          S rU  rV  r>  s      r   rX  zSsmlP.s  r@  r   c                 H    |                      t          |f||d|          S rZ  r]  r_  s        r   r`  zSsmlP.say_as  ra  r   c                 F    |                      t          |fd|i|          S rc  re  rg  s       r   rh  z	SsmlP.sub  ri  r   c                 F    |                      t          d||d|          S rk  rm  ro  s       r   rp  zSsmlP.w  rq  r   r   r   r   )r   r   r   r   r
   r'  r0  r8  rH  rR  rX  r`  rh  rp  r   r   s   @r   r=  r=  x  s       44     
L 
L 
L 
L
K 
K 
K 
K
M 
M 
M 
MQ Q Q Q
 
 
 
 	7 	7 	7 	7
 
 
 

@ 
@ 
@ 
@
B 
B 
B 
B 
B 
B 
B 
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>Nc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr0  r   )r	   r.  r
   r   r   ru  s      r   r
   zSsmlEmphasis.__init__  sJ    *lD!!*44V444	 	DJJJ	 	r   c                 F    |                      t          d||d|          S r!  r$  r&  s       r   r'  zSsmlEmphasis.break_  r(  r   c                 F    |                      t          d||d|          S r*  r-  r/  s       r   r0  zSsmlEmphasis.emphasis
  r1  r   c                 F    |                      t          d||d|          S r3  r5  r7  s       r   r8  zSsmlEmphasis.lang  r9  r   c                 H    |                      t          |f||d|          S rB  rE  rG  s        r   rH  zSsmlEmphasis.phoneme"  rI  r   c           
      J    |                      t          d||||d|          S rK  rO  rQ  s         r   rR  zSsmlEmphasis.prosody/  rS  r   c                 H    |                      t          |f||d|          S rZ  r]  r_  s        r   r`  zSsmlEmphasis.say_as?  ra  r   c                 F    |                      t          |fd|i|          S rc  re  rg  s       r   rh  zSsmlEmphasis.subN  ri  r   c                 F    |                      t          d||d|          S rk  rm  ro  s       r   rp  zSsmlEmphasis.wZ  rq  r   r   r   r   r  r   s   @r   r.  r.    s        $$     
L 
L 
L 
L
K 
K 
K 
K
M 
M 
M 
MQ Q Q Q
 
 
 
 
 
 
 

@ 
@ 
@ 
@
B 
B 
B 
B 
B 
B 
B 
Br   r.  c                   "     e Zd ZdZ fdZ xZS )r%  zAdding a Pause in <Say>c                 V     t          t          |           j        di | d| _        d S )Nbreakr   )r	   r%  r
   r   r   s     r   r
   zSsmlBreak.__init__j  s1    'i'11&111			r   r   r   s   @r   r%  r%  g  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                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zPay.__init__r  s1    !c4!++F+++			r   Nc                 L    |                      t          d|||||d|          S r   r   r   s          r   r   z
Pay.promptv  r   r   c                 F    |                      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   o  s              $
 
 
 
@
F 
F 
F 
F 
F 
F 
F 
Fr   r   c                   "     e Zd ZdZ fdZ xZS )r   z<Sms> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr   r   )r	   r   r
   r   r   r  s      r   r
   zSms.__init__  8    !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 )rx   z<Reject> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )Nrx   r   )r	   rx   r
   r   r   s     r   r
   zReject.__init__  r  r   Nc                 F    |                      t          d||d|          S r   r   r   s       r   r   zReject.parameter  r   r   r   r  r   s   @r   rx   rx     r	  r   rx   c                   "     e Zd ZdZ fdZ xZS )rt   z<Redirect> TwiML Verbc                 d     t          t          |           j        di | d| _        || _        d S )Nrt   r   )r	   rt   r
   r   r   r  s      r   r
   zRedirect.__init__  s8    &h&00000	


r   r   r   s   @r   rt   rt     s>                r   rt   c                   "     e Zd ZdZ fdZ xZS )rr   z<Record> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )Nrr   r   )r	   rr   r
   r   r   s     r   r
   zRecord.__init__  r  r   r   r   s   @r   rr   rr     r  r   rr   c                   "     e Zd ZdZ fdZ xZS )ri   z<Queue> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nri   r   )r	   ri   r
   r   r   r   r   r   r   s      r   r
   zQueue.__init__  s8    #eT#--f---	


r   r   r   s   @r   ri   ri     s>                r   ri   c                   "     e Zd ZdZ fdZ xZS )rP   z<Leave> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )NrP   r   )r	   rP   r
   r   r   s     r   r
   zLeave.__init__  r   r   r   r   s   @r   rP   rP     r  r   rP   c                   *     e Zd ZdZ fdZddZ xZS )rM   z<Hangup> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )NrM   r   )r	   rM   r
   r   r   s     r   r
   zHangup.__init__  r  r   Nc                 F    |                      t          d||d|          S r   r   r   s       r   r   zHangup.parameter  r   r   r   r  r   s   @r   rM   rM     r	  r   rM   c                   :     e Zd ZdZ fdZddZddZd	dZ xZS )
rJ   z<Gather> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )NrJ   r   )r	   rJ   r
   r   r   s     r   r
   zGather.__init__  r  r   Nc           
      J    |                      t          d||||d|          S r{   r~   r   s         r   r   z
Gather.say  r   r   c                 D    |                      t          dd|i|          S rS   rU   rW   s      r   rX   zGather.pause  rY   r   c           	      H    |                      t          d|||d|          S r[   r_   ra   s        r   rb   zGather.play  rc   r   r   r   r   )	r   r   r   r   r
   r   rX   rb   r   r   s   @r   rJ   rJ     s            
 
 
 
 	9 	9 	9 	9L L L L L L L Lr   rJ   c                   ,     e Zd ZdZd fd	ZddZ xZS )r8   z<Enqueue> TwiML NounNc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr8   r   )r	   r8   r
   r   r   r  s      r   r
   zEnqueue.__init__)  sJ    %gt%/////	 	DJJJ	 	r   c                 H    |                      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&QQRRRr   r   r   )r   r   r   r   r
   r  r   r   s   @r   r8   r8   &  s_             S S S S S S S Sr   r8   c                   "     e Zd ZdZ fdZ xZS )r  z<Task> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zTask.__init__@  8    "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                 V     t          t          |           j        di | d| _        d S )Nr/   r   )r	   r/   r
   r   r   s     r   r
   zEcho.__init__I  r   r   r   r   s   @r   r/   r/   F  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 VerbNc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr,   r   )r	   r,   r
   r   r   )r   r   r   r   s      r   r
   zDial.__init__Q  sJ    "dD",,V,,,	 	 DJJJ	  	 r   c                 N    |                      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.clientW  sM    . yy !&; /'=   

 

 
	
r   c                     |                      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_exitr5   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  r5   r  r  r    r  r  r!   r  r   r   r"   r#   r$   r  r  r  r   s                          r   
conferencezDial.conferencez  s5   j yy  e T +D*C	
 (>'= " (K "2!1 v v e T '<&; !0 (>'=  +D*C!" 2R1Q#$ 1P0O%& $6#5'( $6#5)* #4"3- 
 
 	
r   c                 `    |                      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  si    R yy'&; /'="3+E$7*C3U7]2S   ! 
 
 	
r   c           
      L    |                      t          |f||||d|          S re   rh   rj   s          r   rk   z
Dial.queue	  rl   r   c                 B    |                      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00r   c                 `    |                      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.sip3	  si    R yy!!&; /'="3+E$7*C3U7]2S   ! 
 
 	
r   c	                 R    |                      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.applicationq	  sS    6 yy 
 /&; /'='-
 
 
 

 
 	
r   r   r   )NNNNNNNNNNNNNNNNNNNNr   r   )NNNNNNNN)r   r   r   r   r
   r  r  r   rk   r  r   r  r   r   s   @r   r,   r,   N  s                   "#!
 !
 !
 !
L "&#"#"&)-(,-N
 N
 N
 N
f "##' "&+//3*.!<
 <
 <
 <
B #
 
 
 
@	1 	1 	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 NounNc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zApplication.__init__	  sJ    )k4  )33F333!	 	)(DJJJ	) 	)r   c                 B    |                      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66v66777r   c                 F    |                      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  	  sn        "") ) ) ) ) )	8 	8 	8
F 
F 
F 
F 
F 
F 
F 
Fr   r  c                   "     e Zd ZdZ fdZ xZS )r  z<ApplicationSid> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zApplicationSid.__init__	  s8    ,nd##,66v66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                 d     t          t          |           j        di | d| _        || _        d S 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                 d     t          t          |           j        di | d| _        || _        d S )Nr
  r   )r	   r
  r
   r   r   )r   r  r   r   s      r   r
   zSim.__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<Number> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zNumber.__init__	  s8    $fd$..v...	!


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<Conference> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr  r   )r	   r  r
   r   r   r  s      r   r
   zConference.__init__	  s8    (j$(22622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 NounNc                 l     t          t          |           j        di | d| _        |r	|| _        d S d S )Nr  r   )r	   r  r
   r   r   )r   r  r   r   s      r   r
   zClient.__init__	  sJ    $fd$..v...	 	"!DJJJ	" 	"r   c                 B    |                      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.identity	  s&     yy/<<V<<===r   c                 F    |                      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  	  sn        " " " " " "	> 	> 	>
F 
F 
F 
F 
F 
F 
F 
Fr   r  c                   "     e Zd ZdZ fdZ xZS )r)  z<Identity> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr)  r   )r	   r)  r
   r   r   )r   r*  r   r   s      r   r
   zIdentity.__init__
  s8    &h&00000	$


r   r   r   s   @r   r)  r)  

  s>        % % % % % % % % %r   r)  c                        e Zd ZdZ fdZddZd Z	 	 	 	 	 	 ddZ	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
Z xZS )r   z<Connect> TwiML Verbc                 V     t          t          |           j        di | d| _        d S )Nr   r   )r	   r   r
   r   r   s     r   r
   zConnect.__init__
  s1    %gt%/////			r   Nc                 F    |                      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   r1  r   s       r   roomzConnect.room
  s3     yyKK,@KFKK
 
 	
r   c                 B    |                      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22622333r   c                 N    |                      t          d||||||d|          S r   r   r   s           r   r   zConnect.stream3
  r   r   c                 L    |                      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   rC   sentiment_analysisr   r   r   )r   VirtualAgent)r   r   rC   r9  r   r   r   s          r   virtual_agentzConnect.virtual_agentV
  sJ    * yy -!#5 /'=   	
 	
 		
r   c                 ^    |                      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.conversationv
  sf    N yy %9%9+E /*C1Q0O /'=&;   
 
 	
r   c                     |                      t          di d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d||          S )a  
        Create a <ConversationRelay> element

        :param url: URL of the remote service where the session is connected to
        :param language: Language to be used for both text-to-speech and transcription
        :param tts_language: Language to be used for text-to-speech
        :param transcription_language: Language to be used for transcription
        :param tts_provider: Provider to be used for text-to-speech
        :param voice: Voice to be used for text-to-speech
        :param transcription_provider: Provider to be used for transcription
        :param speech_model: Speech model to be used for transcription
        :param profanity_filter: Whether profanities should be filtered out of the speech transcription
        :param dtmf_detection: Whether DTMF tones should be detected and reported in speech transcription
        :param welcome_greeting: The sentence to be played automatically when the session is connected
        :param partial_prompts: Whether partial prompts should be reported to WebSocket server before the caller finishes speaking
        :param interruptible: Whether caller's speaking can interrupt the play of text-to-speech
        :param interrupt_by_dtmf: Whether DTMF tone can interrupt the play of text-to-speech
        :param welcome_greeting_interruptible: Whether caller's speaking can interrupt the welcome greeting
        :param debug: Whether debugging on the session is enabled
        :param kwargs: additional attributes

        :returns: <ConversationRelay> element
        r\   rC   tts_languagetranscription_languagetts_providerr}   transcription_providerrH   r>   dtmf_detectionwelcome_greetingpartial_promptsinterruptibleinterrupt_by_dtmfwelcome_greeting_interruptiblerF   r   )r   ConversationRelay)r   r\   rC   rD  rE  rF  r}   rG  rH   r>   rH  rI  rJ  rK  rL  rM  rF   r   s                     r   conversation_relayzConnect.conversation_relay
  s    V yy   C! *\ (>'=	
 *\ e (>'= *\ "2!1  .~ "2!1 !0 ,m #4"3 0N/M  e# 
 
 	
r   c                     |                      t          di d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d||          S )a  
        Create a <Assistant> element

        :param id: The assistant ID of the AI Assistant
        :param language: Language to be used for both text-to-speech and transcription
        :param tts_language: Language to be used for text-to-speech
        :param transcription_language: Language to be used for transcription
        :param tts_provider: Provider to be used for text-to-speech
        :param voice: Voice to be used for text-to-speech
        :param transcription_provider: Provider to be used for transcription
        :param speech_model: Speech model to be used for transcription
        :param profanity_filter: Whether profanities should be filtered out of the speech transcription
        :param dtmf_detection: Whether DTMF tones should be detected and reported in speech transcription
        :param welcome_greeting: The sentence to be played automatically when the session is connected
        :param partial_prompts: Whether partial prompts should be reported to WebSocket server before the caller finishes speaking
        :param interruptible: Whether caller's speaking can interrupt the play of text-to-speech
        :param interrupt_by_dtmf: Whether DTMF tone can interrupt the play of text-to-speech
        :param welcome_greeting_interruptible: Whether caller's speaking can interrupt the welcome greeting
        :param debug: Whether debugging on the session is enabled
        :param kwargs: additional attributes

        :returns: <Assistant> element
        idrC   rD  rE  rF  r}   rG  rH   r>   rH  rI  rJ  rK  rL  rM  rF   r   )r   	Assistant)r   rQ  rC   rD  rE  rF  r}   rG  rH   r>   rH  rI  rJ  rK  rL  rM  rF   r   s                     r   	assistantzConnect.assistant
  s    V yy   2! *\ (>'=	
 *\ e (>'= *\ "2!1  .~ "2!1 !0 ,m #4"3 0N/M  e# 
 
 	
r   r   r   r   r   )NNNNNNNNNNNNNNNN)r   r   r   r   r
   r3  r6  r   r;  rB  rO  rS  r   r   s   @r   r   r   
  s~           
 
 
 
	4 	4 	4 #!
 !
 !
 !
J #
 
 
 
D "!#'"&)-(,#"9
 9
 9
 9
z ##'+#?
 ?
 ?
 ?
F ##'+#?
 ?
 ?
 ?
 ?
 ?
 ?
 ?
r   r   c                   <     e Zd ZdZ fdZ	 	 	 	 	 ddZddZ xZS )rR  z<Assistant> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )NrR  r   )r	   rR  r
   r   r   s     r   r
   zAssistant.__init__7  r   r   Nc                 L    |                      t          d|||||d|          S a  
        Create a <Language> element

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

        :returns: <Language> element
        )coderF  r}   rG  rH   r   r   Languager   rX  rF  r}   rG  rH   r   s          r   rC   zAssistant.language;  J    * yy )'=)   	
 	
 		
r   c                 F    |                      t          d||d|          S r   r   r   s       r   r   zAssistant.parameter[  r   r   r   r   r   r   r   r   r
   rC   r   r   r   s   @r   rR  rR  4  s                    #
 
 
 
@
F 
F 
F 
F 
F 
F 
F 
Fr   rR  c                   "     e Zd ZdZ fdZ xZS )rZ  z<Language> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )NrZ  r   )r	   rZ  r
   r   r   s     r   r
   zLanguage.__init__k  s1    &h&00000			r   r   r   s   @r   rZ  rZ  h  s>                r   rZ  c                   <     e Zd ZdZ fdZ	 	 	 	 	 ddZddZ xZS )rN  z<ConversationRelay> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )NrN  r   )r	   rN  r
   r   r   s     r   r
   zConversationRelay.__init__s  s2    /&&/99&999'			r   Nc                 L    |                      t          d|||||d|          S rW  rY  r[  s          r   rC   zConversationRelay.languagew  r\  r   c                 F    |                      t          d||d|          S r   r   r   s       r   r   zConversationRelay.parameter  r   r   r   r   r^  r   s   @r   rN  rN  p  s        ((( ( ( ( ( #
 
 
 
@
F 
F 
F 
F 
F 
F 
F 
Fr   rN  c                   "     e Zd ZdZ fdZ xZS )rA  z<Conversation> TwiML Nounc                 V     t          t          |           j        di | d| _        d S )NrA  r   )r	   rA  r
   r   r   s     r   r
   zConversation.__init__  1    *lD!!*44V444"			r   r   r   s   @r   rA  rA    s>        ### # # # # # # # #r   rA  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                 V     t          t          |           j        di | d| _        d S )Nr:  r   )r	   r:  r
   r   r   s     r   r
   zVirtualAgent.__init__  rg  r   Nc                 F    |                      t          d||d|          S r   r   r   s       r   r   zVirtualAgent.config  r   r   c                 F    |                      t          d||d|          S r   r   r   s       r   r   zVirtualAgent.parameter  r   r   r   r   r   s   @r   r:  r:    sr        ### # # # #
C 
C 
C 
C
F 
F 
F 
F 
F 
F 
F 
Fr   r:  c                   "     e Zd ZdZ fdZ xZS )r5  z<Autopilot> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr5  r   )r	   r5  r
   r   r   r  s      r   r
   zAutopilot.__init__  s8    'i'11&111	


r   r   r   s   @r   r5  r5    s>                  r   r5  c                   "     e Zd ZdZ fdZ xZS )r2  z<Room> TwiML Nounc                 d     t          t          |           j        di | d| _        || _        d S )Nr2  r   )r	   r2  r
   r   r   r  s      r   r
   zRoom.__init__  r  r   r   r   s   @r   r2  r2    r  r   r2  N)8r   twilio.twimlr   r   r   r   r   r   r   r   r   r   r   r   rV   r`   r   rn  rf  r^  rP  rW  rF  r6  r=  r.  r%  r   r   rx   rt   rr   ri   rP   rM   rJ   r8   r  r/   r,   r  r  r   r
  r  r  r  r)  r   rR  rZ  rN  rA  r:  r5  r2  r   r   r   <module>rq     s
        
fH fH fH fH fHE fH fH fHR6 6 6 6 6E 6 6 6&    u   C
 C
 C
 C
 C
5 C
 C
 C
LF F F F FE F F F@                   U   F F F F FU F F F(F F F F FU F F F(C
 C
 C
 C
 C
E C
 C
 C
L-9 -9 -9 -9 -9U -9 -9 -9`    E       5   EB EB EB EB EB% EB EB EBPW@ W@ W@ W@ W@E W@ W@ W@t    e          EB EB EB EB EB% EB EB EBPoB oB oB oB oBE oB oB oBd    %   EB EB EB EB EBu EB EB EBPzB zB zB zB zBE zB zB zBzoB oB oB oB oB5 oB oB oBd       1F 1F 1F 1F 1F% 1F 1F 1Fh    %   F F F F FU F F F(    u       U       E       E   F F F F FU F F F(-L -L -L -L -LU -L -L -L`S S S S Se S S S.    5       5   J
 J
 J
 J
 J
5 J
 J
 J
Z
F F F F F% F F FB    U       %       %   " " " " "U " " "       F F F F FU F F FB% % % % %u % % %^
 ^
 ^
 ^
 ^
e ^
 ^
 ^
B	1F 1F 1F 1F 1F 1F 1F 1Fh    u   1F 1F 1F 1F 1F 1F 1F 1Fh# # # # #5 # # #F F F F F5 F F F@           5     r   