U
    ^g%i[                     @   s   d Z ddlmZmZmZmZmZmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G d	d
 d
eZG dd deZG dd deZG dd deZdS )a  
    This code was generated by
   ___ _ _ _ _ _    _ ____    ____ ____ _    ____ ____ _  _ ____ ____ ____ ___ __   __
    |  | | | | |    | |  | __ |  | |__| | __ | __ |___ |\ | |___ |__/ |__|  | |  | |__/
    |  |_|_| | |___ | |__|    |__| |  | |    |__] |___ | \| |___ |  \ |  |  | |__| |  \

    Twilio - Messaging
    This is the public Twilio REST API.

    NOTE: This class is auto generated by OpenAPI Generator.
    https://openapi-generator.tech
    Do not edit the class manually.
    )AnyDictListOptionalUnionIteratorAsyncIterator)values)InstanceContext)InstanceResource)ListResource)Version)Pagec                       s  e Zd ZG dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZd2eeeef ee d fddZedd d!d"Zed d#d$Zed d%d&Zd d d'd(Zd d d)d*Zejfe e
ef d d+d,d-Z!ejfe e
ef d d+d.d/Z"ed d0d1Z#  Z$S )3ChannelsSenderInstancec                   @   s.   e Zd ZdZeeef dddZdd ZdS )z=ChannelsSenderInstance.MessagingV2ChannelsSenderConfiguration)  
        :ivar waba_id: The ID of the WhatsApp Business Account (WABA) to use for this sender.
        :ivar verification_method: The verification method.
        :ivar verification_code: The verification code.
        :ivar voice_application_sid: The SID of the Twilio Voice application.
        payloadc                 C   s4   | d| _| d| _| d| _| d| _d S Nwaba_idverification_methodverification_codevoice_application_sidgetr   r   r   r   selfr    r   g/var/www/html/api-medvista/venv/lib/python3.8/site-packages/twilio/rest/messaging/v2/channels_sender.py__init__"   s    zFChannelsSenderInstance.MessagingV2ChannelsSenderConfiguration.__init__c                 C   s   | j | j| j| jdS Nr   r   r   r   r    r   r   r   r   to_dict-   s
    zEChannelsSenderInstance.MessagingV2ChannelsSenderConfiguration.to_dictN	__name__
__module____qualname____doc__r   strr   r   r"   r   r   r   r   &MessagingV2ChannelsSenderConfiguration   s   r)   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z7ChannelsSenderInstance.MessagingV2ChannelsSenderProfile|  
        :ivar name: The name of the sender. Required for WhatsApp senders and must follow [Meta's display name guidelines](https://www.facebook.com/business/help/757569725593362).
        :ivar about: The profile about text for the sender.
        :ivar address: The address of the sender.
        :ivar description: The description of the sender.
        :ivar logo_url: The logo URL of the sender.
        :ivar banner_url: The banner URL of the sender.
        :ivar privacy_url: The privacy URL of the sender. Must be a publicly accessible HTTP or HTTPS URI associated with the sender.
        :ivar terms_of_service_url: The terms of service URL of the sender.
        :ivar accent_color: The color theme of the sender. Must be in hex format and have at least a 4:5:1 contrast ratio against white.
        :ivar vertical: The vertical of the sender. Allowed values are: - `Automotive` - `Beauty, Spa and Salon` - `Clothing and Apparel` - `Education` - `Entertainment` - `Event Planning and Service` - `Finance and Banking` - `Food and Grocery` - `Public Service` - `Hotel and Lodging` - `Medical and Health` - `Non-profit` - `Professional Services` - `Shopping and Retail` - `Travel and Transportation` - `Restaurant` - `Other`
        :ivar websites: The websites of the sender.
        :ivar emails: The emails of the sender.
        :ivar phone_numbers: The phone numbers of the sender.
        r   c                 C   s   | d| _| d| _| d| _| d| _| d| _| d| _| d| _| d| _| d	| _	| d
| _
| d| _| d| _| d| _d S Nnameaboutaddressdescriptionlogo_url
banner_urlprivacy_urlterms_of_service_urlaccent_colorverticalwebsitesemailsphone_numbersr   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r   r   r   r   F   s"    z@ChannelsSenderInstance.MessagingV2ChannelsSenderProfile.__init__c                 C   s:   | j | j| j| j| j| j| j| j| j| j	| j
| j| jdS Nr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r;   r!   r   r   r   r"   Z   s    z?ChannelsSenderInstance.MessagingV2ChannelsSenderProfile.to_dictNr#   r   r   r   r    MessagingV2ChannelsSenderProfile5   s   r<   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zLChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponseEmails3
        :ivar email:
        :ivar label:
        r   c                 C   s   | d| _| d| _d S Nemaillabelr   r?   r@   r   r   r   r   r   q   s    zUChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponseEmails.__init__c                 C   s   | j | jdS N) rC   r?   r@   r!   r   r   r   r"   v   s    zTChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponseEmails.to_dictNr#   r   r   r   r   5MessagingV2ChannelsSenderProfileGenericResponseEmailsk   s   rE   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zRChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers:
        :ivar phone_number:
        :ivar label:
        r   c                 C   s   | d| _| d| _d S Nphone_numberr@   r   rH   r@   r   r   r   r   r      s    z[ChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers.__init__c                 C   s   | j | jdS rB   rH   r@   r!   r   r   r   r"      s    zZChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers.to_dictNr#   r   r   r   r   ;MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers|   s   rK   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zNChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponseWebsites5
        :ivar website:
        :ivar label:
        r   c                 C   s   | d| _| d| _d S Nwebsiter@   r   rN   r@   r   r   r   r   r      s    zWChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponseWebsites.__init__c                 C   s   | j | jdS rB   rN   r@   r!   r   r   r   r"      s    zVChannelsSenderInstance.MessagingV2ChannelsSenderProfileGenericResponseWebsites.to_dictNr#   r   r   r   r   7MessagingV2ChannelsSenderProfileGenericResponseWebsites   s   rQ   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z>ChannelsSenderInstance.MessagingV2ChannelsSenderRequestsCreate
        :ivar sender_id: The ID of the sender in `whatsapp:<E.164_PHONE_NUMBER>` format.
        :ivar configuration:
        :ivar webhook:
        :ivar profile:
        r   c                 C   s4   | d| _| d| _| d| _| d| _d S N	sender_idconfigurationwebhookprofiler   rT   rU   rV   rW   r   r   r   r   r      s    zGChannelsSenderInstance.MessagingV2ChannelsSenderRequestsCreate.__init__c                 C   sL   | j | jd k	r| j nd | jd k	r.| j nd | jd k	rD| j nd dS N)rT   rU   rV   rW   rT   rU   r"   rV   rW   r!   r   r   r   r"      s    zFChannelsSenderInstance.MessagingV2ChannelsSenderRequestsCreate.to_dictNr#   r   r   r   r   'MessagingV2ChannelsSenderRequestsCreate   s   r[   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z>ChannelsSenderInstance.MessagingV2ChannelsSenderRequestsUpdateT
        :ivar configuration:
        :ivar webhook:
        :ivar profile:
        r   c                 C   s(   | d| _| d| _| d| _d S NrU   rV   rW   r   rU   rV   rW   r   r   r   r   r      s    zGChannelsSenderInstance.MessagingV2ChannelsSenderRequestsUpdate.__init__c                 C   sH   | j d k	r| j  nd | jd k	r*| j nd | jd k	r@| j nd dS N)rU   rV   rW   rU   r"   rV   rW   r!   r   r   r   r"      s    zFChannelsSenderInstance.MessagingV2ChannelsSenderRequestsUpdate.to_dictNr#   r   r   r   r   'MessagingV2ChannelsSenderRequestsUpdate   s   ra   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z7ChannelsSenderInstance.MessagingV2ChannelsSenderWebhook  
        :ivar callback_url: The URL to send the webhook to.
        :ivar callback_method: The HTTP method for the webhook.
        :ivar fallback_url: The URL to send the fallback webhook to.
        :ivar fallback_method: The HTTP method for the fallback webhook.
        :ivar status_callback_url: The URL to send the status callback to.
        :ivar status_callback_method: The HTTP method for the status callback.
        r   c                 C   sL   | d| _| d| _| d| _| d| _| d| _| d| _d S Ncallback_urlcallback_methodfallback_urlfallback_methodstatus_callback_urlstatus_callback_methodr   rd   re   rf   rg   rh   ri   r   r   r   r   r      s    z@ChannelsSenderInstance.MessagingV2ChannelsSenderWebhook.__init__c                 C   s   | j | j| j| j| j| jdS Nrd   re   rf   rg   rh   ri   rl   r!   r   r   r   r"      s    z?ChannelsSenderInstance.MessagingV2ChannelsSenderWebhook.to_dictNr#   r   r   r   r    MessagingV2ChannelsSenderWebhook   s   	rm   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z,ChannelsSenderInstance.MessagingV2RcsCarrieru
        :ivar name: The name of the carrier. For example, `Verizon` or `AT&T` for US.
        :ivar status:
        r   c                 C   s   | d| _| d| _d S Nr,   statusr   r,   rp   r   r   r   r   r     s    z5ChannelsSenderInstance.MessagingV2RcsCarrier.__init__c                 C   s    | j | jd k	r| j nd dS rB   r,   rp   r"   r!   r   r   r   r"     s    z4ChannelsSenderInstance.MessagingV2RcsCarrier.to_dictNr#   r   r   r   r   MessagingV2RcsCarrier   s   rs   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z>ChannelsSenderInstance.MessagingV2RcsComplianceCountryResponse  
        :ivar country: The ISO 3166-1 alpha-2 country code.
        :ivar registration_sid: The default compliance registration SID (e.g., from CR-Google) that applies to all countries unless overridden in the `countries` array.
        :ivar status:
        :ivar carriers:
        r   c                 C   s4   | d| _| d| _| d| _| d| _d S Ncountryregistration_sidrp   carriersr   rv   rw   rp   rx   r   r   r   r   r     s    zGChannelsSenderInstance.MessagingV2RcsComplianceCountryResponse.__init__c                 C   s@   | j | j| jd k	r| j nd | jd k	r8dd | jD nd dS )Nc                 S   s   g | ]}|  qS r   r"   .0rx   r   r   r   
<listcomp>(  s     zZChannelsSenderInstance.MessagingV2RcsComplianceCountryResponse.to_dict.<locals>.<listcomp>rC   rC   rC   rC   rv   rw   rp   r"   rx   r!   r   r   r   r"   "  s    zFChannelsSenderInstance.MessagingV2RcsComplianceCountryResponse.to_dictNr#   r   r   r   r   'MessagingV2RcsComplianceCountryResponse  s   	r   c                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )zChannelsSenderInstance.StatusCREATINGONLINEOFFLINEPENDING_VERIFICATION	VERIFYINGzONLINE:UPDATINGTWILIO_REVIEWDRAFTSTUBBEDN)r$   r%   r&   r   r   r   r   r   ZONLINE_UPDATINGr   r   r   r   r   r   r   Status.  s   r   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )z2ChannelsSenderInstance.MessagingV2RcsCarrierStatusUNKNOWN
UNLAUNCHEDCARRIER_REVIEWAPPROVEDREJECTED	SUSPENDEDN)	r$   r%   r&   r   r   r   r   r   r   r   r   r   r   MessagingV2RcsCarrierStatus9  s   r   c                   @   s   e Zd ZdZdZdZdZdS )z2ChannelsSenderInstance.MessagingV2RcsCountryStatusr   r   r   r   N)r$   r%   r&   r   r   r   r   r   r   r   r   MessagingV2RcsCountryStatusA  s   r   N)versionr   sidc                    s   t  | |d| _|d| _|d| _|d| _|d| _|d| _|d| _	|d| _
|d	| _|d
| _d|p| ji| _d | _d S )Nr   rp   rT   rU   rV   rW   
propertiesoffline_reasons
complianceurl)superr   r   r   rp   rT   rU   rV   rW   r   r   r   r   	_solution_context)r   r   r   r   	__class__r   r   r   T  s     zChannelsSenderInstance.__init__ChannelsSenderContextreturnc                 C   s&   | j dkr t| j| jd d| _ | j S )z
        Generate an instance context for the instance, the context is capable of
        performing various actions. All instance actions are proxied to the context

        :returns: ChannelsSenderContext for this ChannelsSenderInstance
        Nr   r   )r   r   _versionr   r!   r   r   r   _proxyi  s    
zChannelsSenderInstance._proxyc                 C   s
   | j  S )q
        Deletes the ChannelsSenderInstance


        :returns: True if delete succeeds, False otherwise
        )r   deleter!   r   r   r   r   x  s    zChannelsSenderInstance.deletec                    s   | j  I dH S )
        Asynchronous coroutine that deletes the ChannelsSenderInstance


        :returns: True if delete succeeds, False otherwise
        N)r   delete_asyncr!   r   r   r   r     s    z#ChannelsSenderInstance.delete_asyncc                 C   s
   | j  S )i
        Fetch the ChannelsSenderInstance


        :returns: The fetched ChannelsSenderInstance
        )r   fetchr!   r   r   r   r     s    zChannelsSenderInstance.fetchc                    s   | j  I dH S )
        Asynchronous coroutine to fetch the ChannelsSenderInstance


        :returns: The fetched ChannelsSenderInstance
        N)r   fetch_asyncr!   r   r   r   r     s    z"ChannelsSenderInstance.fetch_async,messaging_v2_channels_sender_requests_updater   c                 C   s   | j j|dS )
        Update the ChannelsSenderInstance

        :param messaging_v2_channels_sender_requests_update:

        :returns: The updated ChannelsSenderInstance
        r   )r   updater   r   r   r   r   r     s    zChannelsSenderInstance.updatec                    s   | j j|dI dH S )
        Asynchronous coroutine to update the ChannelsSenderInstance

        :param messaging_v2_channels_sender_requests_update:

        :returns: The updated ChannelsSenderInstance
        r   N)r   update_asyncr   r   r   r   r     s    z#ChannelsSenderInstance.update_asyncc                 C   s$   d dd | j D }d|S )f
        Provide a friendly representation

        :returns: Machine friendly representation
         c                 s   s   | ]\}}d  ||V  qdS z{}={}Nformatr|   kvr   r   r   	<genexpr>  s     z2ChannelsSenderInstance.__repr__.<locals>.<genexpr>z/<Twilio.Messaging.V2.ChannelsSenderInstance {}>joinr   itemsr   r   contextr   r   r   __repr__  s    zChannelsSenderInstance.__repr__)N)%r$   r%   r&   objectr)   r<   rE   rK   rQ   r[   ra   rm   rs   r   r   r   r   r   r   r(   r   r   r   propertyr   boolr   r   r   r   r	   unsetr   r   r   r   __classcell__r   r   r   r   r      sP   6!#  
 			r   c                       sF  e Zd ZG dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZeed fddZedddZedddZedddZeddd Zejfee
ef ed!d"d#Zejfee
ef ed!d$d%Zedd&d'Z  ZS )(r   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z<ChannelsSenderContext.MessagingV2ChannelsSenderConfigurationr   r   c                 C   s4   | d| _| d| _| d| _| d| _d S r   r   r   r   r   r   r     s    zEChannelsSenderContext.MessagingV2ChannelsSenderConfiguration.__init__c                 C   s   | j | j| j| jdS r   r    r!   r   r   r   r"     s
    zDChannelsSenderContext.MessagingV2ChannelsSenderConfiguration.to_dictNr#   r   r   r   r   r)     s   r)   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z6ChannelsSenderContext.MessagingV2ChannelsSenderProfiler*   r   c                 C   s   | d| _| d| _| d| _| d| _| d| _| d| _| d| _| d| _| d	| _	| d
| _
| d| _| d| _| d| _d S r+   r9   r   r   r   r   r     s"    z?ChannelsSenderContext.MessagingV2ChannelsSenderProfile.__init__c                 C   s:   | j | j| j| j| j| j| j| j| j| j	| j
| j| jdS r:   r;   r!   r   r   r   r"   
  s    z>ChannelsSenderContext.MessagingV2ChannelsSenderProfile.to_dictNr#   r   r   r   r   r<     s   r<   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zKChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponseEmailsr=   r   c                 C   s   | d| _| d| _d S r>   rA   r   r   r   r   r   !  s    zTChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponseEmails.__init__c                 C   s   | j | jdS rB   rD   r!   r   r   r   r"   &  s    zSChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponseEmails.to_dictNr#   r   r   r   r   rE     s   rE   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zQChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbersrF   r   c                 C   s   | d| _| d| _d S rG   rI   r   r   r   r   r   2  s    zZChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers.__init__c                 C   s   | j | jdS rB   rJ   r!   r   r   r   r"   7  s    zYChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers.to_dictNr#   r   r   r   r   rK   ,  s   rK   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zMChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponseWebsitesrL   r   c                 C   s   | d| _| d| _d S rM   rO   r   r   r   r   r   C  s    zVChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponseWebsites.__init__c                 C   s   | j | jdS rB   rP   r!   r   r   r   r"   H  s    zUChannelsSenderContext.MessagingV2ChannelsSenderProfileGenericResponseWebsites.to_dictNr#   r   r   r   r   rQ   =  s   rQ   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z=ChannelsSenderContext.MessagingV2ChannelsSenderRequestsCreaterR   r   c                 C   s4   | d| _| d| _| d| _| d| _d S rS   rX   r   r   r   r   r   V  s    zFChannelsSenderContext.MessagingV2ChannelsSenderRequestsCreate.__init__c                 C   sL   | j | jd k	r| j nd | jd k	r.| j nd | jd k	rD| j nd dS rY   rZ   r!   r   r   r   r"   c  s    zEChannelsSenderContext.MessagingV2ChannelsSenderRequestsCreate.to_dictNr#   r   r   r   r   r[   N  s   r[   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z=ChannelsSenderContext.MessagingV2ChannelsSenderRequestsUpdater\   r   c                 C   s(   | d| _| d| _| d| _d S r]   r^   r   r   r   r   r   v  s    zFChannelsSenderContext.MessagingV2ChannelsSenderRequestsUpdate.__init__c                 C   sH   | j d k	r| j  nd | jd k	r*| j nd | jd k	r@| j nd dS r_   r`   r!   r   r   r   r"     s    zEChannelsSenderContext.MessagingV2ChannelsSenderRequestsUpdate.to_dictNr#   r   r   r   r   ra   o  s   ra   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z6ChannelsSenderContext.MessagingV2ChannelsSenderWebhookrb   r   c                 C   sL   | d| _| d| _| d| _| d| _| d| _| d| _d S rc   rj   r   r   r   r   r     s    z?ChannelsSenderContext.MessagingV2ChannelsSenderWebhook.__init__c                 C   s   | j | j| j| j| j| jdS rk   rl   r!   r   r   r   r"     s    z>ChannelsSenderContext.MessagingV2ChannelsSenderWebhook.to_dictNr#   r   r   r   r   rm     s   	rm   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z+ChannelsSenderContext.MessagingV2RcsCarrierrn   r   c                 C   s   | d| _| d| _d S ro   rq   r   r   r   r   r     s    z4ChannelsSenderContext.MessagingV2RcsCarrier.__init__c                 C   s    | j | jd k	r| j nd dS rB   rr   r!   r   r   r   r"     s    z3ChannelsSenderContext.MessagingV2RcsCarrier.to_dictNr#   r   r   r   r   rs     s   rs   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z=ChannelsSenderContext.MessagingV2RcsComplianceCountryResponsert   r   c                 C   s4   | d| _| d| _| d| _| d| _d S ru   ry   r   r   r   r   r     s    zFChannelsSenderContext.MessagingV2RcsComplianceCountryResponse.__init__c                 C   s@   | j | j| jd k	r| j nd | jd k	r8dd | jD nd dS )Nc                 S   s   g | ]}|  qS r   rz   r{   r   r   r   r}     s     zYChannelsSenderContext.MessagingV2RcsComplianceCountryResponse.to_dict.<locals>.<listcomp>r~   r   r!   r   r   r   r"     s    zEChannelsSenderContext.MessagingV2RcsComplianceCountryResponse.to_dictNr#   r   r   r   r   r     s   	r   )r   r   c                    s*   t  | d|i| _djf | j| _dS )z
        Initialize the ChannelsSenderContext

        :param version: Version that contains the resource
        :param sid: The SID of the sender.
        r   z/Channels/Senders/{sid}N)r   r   r   r   _uri)r   r   r   r   r   r   r     s
     zChannelsSenderContext.__init__r   c                 C   s   t i }| jjd| j|dS )r   DELETEmethoduriheaders)r	   ofr   r   r   r   r   r   r   r   r     s    
zChannelsSenderContext.deletec                    s$   t i }| jjd| j|dI dH S )r   r   r   N)r	   r   r   r   r   r   r   r   r   r     s    
  z"ChannelsSenderContext.delete_asyncc                 C   s<   t i }d|d< | jjd| j|d}t| j|| jd dS )r   application/jsonAcceptGETr   r   r   )r	   r   r   r   r   r   r   r   r   r   r   r   r   r     s    
zChannelsSenderContext.fetchc                    sB   t i }d|d< | jjd| j|dI dH }t| j|| jd dS )r   r   r   r   r   Nr   r   )r	   r   r   r   r   r   r   r   r   r   r   r     s    
  z!ChannelsSenderContext.fetch_asyncr   c                 C   sN   |  }ti }d|d< d|d< | jjd| j||d}t| j|| jd dS )r   r   Content-Typer   POSTr   r   datar   r   r   )r"   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   1  s    
   zChannelsSenderContext.updatec                    sT   |  }ti }d|d< d|d< | jjd| j||dI dH }t| j|| jd dS )	r   r   r   r   r   r   Nr   r   )r"   r	   r   r   r   r   r   r   r   r   r   r   r   L  s    
   z"ChannelsSenderContext.update_asyncc                 C   s$   d dd | j D }d|S )r   r   c                 s   s   | ]\}}d  ||V  qdS r   r   r   r   r   r   r   m  s     z1ChannelsSenderContext.__repr__.<locals>.<genexpr>z.<Twilio.Messaging.V2.ChannelsSenderContext {}>r   r   r   r   r   r   g  s    zChannelsSenderContext.__repr__)r$   r%   r&   r   r)   r<   rE   rK   rQ   r[   ra   rm   rs   r   r   r(   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r     s<   6!#r   c                   @   s2   e Zd Zeeef edddZedddZdS )ChannelsSenderPage)r   r   c                 C   s   t | j|S )zt
        Build an instance of ChannelsSenderInstance

        :param payload: Payload response from the API
        )r   r   r   r   r   r   get_instances  s    zChannelsSenderPage.get_instancer   c                 C   s   dS )r   z(<Twilio.Messaging.V2.ChannelsSenderPage>r   r!   r   r   r   r   {  s    zChannelsSenderPage.__repr__N)	r$   r%   r&   r   r(   r   r   r   r   r   r   r   r   r   q  s   r   c                       s  e Zd ZG dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZed fddZe	edddZe	edddZejddfeeef ee ee ee ddd Zejddfeeef ee ee ee dd!d"Zejddfeeef ee ee ee dd#d$Zejddfeeef ee ee ee dd%d&Zejejejejfeeef eeef eeef eeef e d'd(d)Z!ejejejejfeeef eeef eeef eeef e d'd*d+Z"ee d,d-d.Z#ee d,d/d0Z$ee%d1d2d3Z&ee%d1d4d5Z'ed6d7d8Z(  Z)S )9ChannelsSenderListc                   @   s.   e Zd ZdZeeef dddZdd ZdS )z9ChannelsSenderList.MessagingV2ChannelsSenderConfigurationr   r   c                 C   s4   | d| _| d| _| d| _| d| _d S r   r   r   r   r   r   r     s    zBChannelsSenderList.MessagingV2ChannelsSenderConfiguration.__init__c                 C   s   | j | j| j| jdS r   r    r!   r   r   r   r"     s
    zAChannelsSenderList.MessagingV2ChannelsSenderConfiguration.to_dictNr#   r   r   r   r   r)     s   r)   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z3ChannelsSenderList.MessagingV2ChannelsSenderProfiler*   r   c                 C   s   | d| _| d| _| d| _| d| _| d| _| d| _| d| _| d| _| d	| _	| d
| _
| d| _| d| _| d| _d S r+   r9   r   r   r   r   r     s"    z<ChannelsSenderList.MessagingV2ChannelsSenderProfile.__init__c                 C   s:   | j | j| j| j| j| j| j| j| j| j	| j
| j| jdS r:   r;   r!   r   r   r   r"     s    z;ChannelsSenderList.MessagingV2ChannelsSenderProfile.to_dictNr#   r   r   r   r   r<     s   r<   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zHChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponseEmailsr=   r   c                 C   s   | d| _| d| _d S r>   rA   r   r   r   r   r     s    zQChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponseEmails.__init__c                 C   s   | j | jdS rB   rD   r!   r   r   r   r"     s    zPChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponseEmails.to_dictNr#   r   r   r   r   rE     s   rE   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zNChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbersrF   r   c                 C   s   | d| _| d| _d S rG   rI   r   r   r   r   r     s    zWChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers.__init__c                 C   s   | j | jdS rB   rJ   r!   r   r   r   r"     s    zVChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponsePhoneNumbers.to_dictNr#   r   r   r   r   rK     s   rK   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )zJChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponseWebsitesrL   r   c                 C   s   | d| _| d| _d S rM   rO   r   r   r   r   r     s    zSChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponseWebsites.__init__c                 C   s   | j | jdS rB   rP   r!   r   r   r   r"     s    zRChannelsSenderList.MessagingV2ChannelsSenderProfileGenericResponseWebsites.to_dictNr#   r   r   r   r   rQ     s   rQ   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z:ChannelsSenderList.MessagingV2ChannelsSenderRequestsCreaterR   r   c                 C   s4   | d| _| d| _| d| _| d| _d S rS   rX   r   r   r   r   r     s    zCChannelsSenderList.MessagingV2ChannelsSenderRequestsCreate.__init__c                 C   sL   | j | jd k	r| j nd | jd k	r.| j nd | jd k	rD| j nd dS rY   rZ   r!   r   r   r   r"     s    zBChannelsSenderList.MessagingV2ChannelsSenderRequestsCreate.to_dictNr#   r   r   r   r   r[   
  s   r[   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z:ChannelsSenderList.MessagingV2ChannelsSenderRequestsUpdater\   r   c                 C   s(   | d| _| d| _| d| _d S r]   r^   r   r   r   r   r   2  s    zCChannelsSenderList.MessagingV2ChannelsSenderRequestsUpdate.__init__c                 C   sH   | j d k	r| j  nd | jd k	r*| j nd | jd k	r@| j nd dS r_   r`   r!   r   r   r   r"   >  s    zBChannelsSenderList.MessagingV2ChannelsSenderRequestsUpdate.to_dictNr#   r   r   r   r   ra   +  s   ra   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z3ChannelsSenderList.MessagingV2ChannelsSenderWebhookrb   r   c                 C   sL   | d| _| d| _| d| _| d| _| d| _| d| _d S rc   rj   r   r   r   r   r   S  s    z<ChannelsSenderList.MessagingV2ChannelsSenderWebhook.__init__c                 C   s   | j | j| j| j| j| jdS rk   rl   r!   r   r   r   r"   b  s    z;ChannelsSenderList.MessagingV2ChannelsSenderWebhook.to_dictNr#   r   r   r   r   rm   I  s   	rm   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z(ChannelsSenderList.MessagingV2RcsCarrierrn   r   c                 C   s   | d| _| d| _d S ro   rq   r   r   r   r   r   r  s    z1ChannelsSenderList.MessagingV2RcsCarrier.__init__c                 C   s    | j | jd k	r| j nd dS rB   rr   r!   r   r   r   r"   w  s    z0ChannelsSenderList.MessagingV2RcsCarrier.to_dictNr#   r   r   r   r   rs   l  s   rs   c                   @   s.   e Zd ZdZeeef dddZdd ZdS )z:ChannelsSenderList.MessagingV2RcsComplianceCountryResponsert   r   c                 C   s4   | d| _| d| _| d| _| d| _d S ru   ry   r   r   r   r   r     s    zCChannelsSenderList.MessagingV2RcsComplianceCountryResponse.__init__c                 C   s@   | j | j| jd k	r| j nd | jd k	r8dd | jD nd dS )Nc                 S   s   g | ]}|  qS r   rz   r{   r   r   r   r}     s     zVChannelsSenderList.MessagingV2RcsComplianceCountryResponse.to_dict.<locals>.<listcomp>r~   r   r!   r   r   r   r"     s    zBChannelsSenderList.MessagingV2RcsComplianceCountryResponse.to_dictNr#   r   r   r   r   r   }  s   	r   )r   c                    s   t  | d| _dS )zp
        Initialize the ChannelsSenderList

        :param version: Version that contains the resource

        z/Channels/SendersN)r   r   r   )r   r   r   r   r   r     s    zChannelsSenderList.__init__),messaging_v2_channels_sender_requests_creater   c                 C   sH   |  }tddi}d|d< d|d< | jjd| j||d}t| j|S )z
        Create the ChannelsSenderInstance

        :param messaging_v2_channels_sender_requests_create:

        :returns: The created ChannelsSenderInstance
        r   !application/x-www-form-urlencodedr   r   r   r   )r"   r	   r   r   creater   r   r   r   r   r   r   r   r   r   r     s       zChannelsSenderList.createc                    sN   |  }tddi}d|d< d|d< | jjd| j||dI dH }t| j|S )z
        Asynchronously create the ChannelsSenderInstance

        :param messaging_v2_channels_sender_requests_create:

        :returns: The created ChannelsSenderInstance
        r   r   r   r   r   r   N)r"   r	   r   r   create_asyncr   r   r   r   r   r   r     s       zChannelsSenderList.create_asyncN)channellimit	page_sizer   c                 C   s2   | j ||}| j||d d}| j ||d S )a  
        Streams ChannelsSenderInstance records from the API as a generator stream.
        This operation lazily loads records as efficiently as possible until the limit
        is reached.
        The results are returned as a generator, so this operation is memory efficient.

        :param str channel:
        :param limit: Upper limit for the number of records to return. stream()
                      guarantees to never return more than limit.  Default is no limit
        :param page_size: Number of records to fetch per request, when not set will use
                          the default value of 50 records.  If no page_size is defined
                          but a limit is defined, stream() will attempt to read the
                          limit with the most efficient page size, i.e. min(limit, 1000)

        :returns: Generator that will yield up to limit results
        r   r   r   r   )r   read_limitspagestreamr   r   r   r   Zlimitsr   r   r   r   r     s    zChannelsSenderList.streamc                    s8   | j ||}| j||d dI dH }| j ||d S )a  
        Asynchronously streams ChannelsSenderInstance records from the API as a generator stream.
        This operation lazily loads records as efficiently as possible until the limit
        is reached.
        The results are returned as a generator, so this operation is memory efficient.

        :param str channel:
        :param limit: Upper limit for the number of records to return. stream()
                      guarantees to never return more than limit.  Default is no limit
        :param page_size: Number of records to fetch per request, when not set will use
                          the default value of 50 records.  If no page_size is defined
                          but a limit is defined, stream() will attempt to read the
                          limit with the most efficient page size, i.e. min(limit, 1000)

        :returns: Generator that will yield up to limit results
        r   r   Nr   )r   r   
page_asyncstream_asyncr   r   r   r   r     s    zChannelsSenderList.stream_asyncc                 C   s   t | j|||dS )a  
        Lists ChannelsSenderInstance records from the API as a list.
        Unlike stream(), this operation is eager and will load `limit` records into
        memory before returning.

        :param str channel:
        :param limit: Upper limit for the number of records to return. list() guarantees
                      never to return more than limit.  Default is no limit
        :param page_size: Number of records to fetch per request, when not set will use
                          the default value of 50 records.  If no page_size is defined
                          but a limit is defined, list() will attempt to read the limit
                          with the most efficient page size, i.e. min(limit, 1000)

        :returns: list that will contain up to limit results
        r   r   r   )listr   r   r   r   r   r   r   r   r     s    zChannelsSenderList.listc                    s&   dd | j |||dI dH 2 I dH S )a,  
        Asynchronously lists ChannelsSenderInstance records from the API as a list.
        Unlike stream(), this operation is eager and will load `limit` records into
        memory before returning.

        :param str channel:
        :param limit: Upper limit for the number of records to return. list() guarantees
                      never to return more than limit.  Default is no limit
        :param page_size: Number of records to fetch per request, when not set will use
                          the default value of 50 records.  If no page_size is defined
                          but a limit is defined, list() will attempt to read the limit
                          with the most efficient page size, i.e. min(limit, 1000)

        :returns: list that will contain up to limit results
        c                    s   g | z3 d H W }|q6 S )Nr   )r|   recordr   r   r   r}   ?  s   z1ChannelsSenderList.list_async.<locals>.<listcomp>r   N)r   r   r   r   r   
list_async*  s    
zChannelsSenderList.list_async)r   
page_tokenpage_numberr   r   c                 C   sL   t ||||d}t ddi}d|d< | jjd| j||d}t| j|S )a  
        Retrieve a single page of ChannelsSenderInstance records from the API.
        Request is executed immediately

        :param channel:
        :param page_token: PageToken provided by the API
        :param page_number: Page Number, this value is simply for client state
        :param page_size: Number of records to return, defaults to 50

        :returns: Page of ChannelsSenderInstance
        ZChannelZ	PageTokenr   ZPageSizer   r   r   r   r   r   r   paramsr   )r	   r   r   r   r   r   r   r   r   r   r   r   r   responser   r   r   r   H  s     	   zChannelsSenderList.pagec                    sR   t ||||d}t ddi}d|d< | jjd| j||dI dH }t| j|S )	a  
        Asynchronously retrieve a single page of ChannelsSenderInstance records from the API.
        Request is executed immediately

        :param channel:
        :param page_token: PageToken provided by the API
        :param page_number: Page Number, this value is simply for client state
        :param page_size: Number of records to return, defaults to 50

        :returns: Page of ChannelsSenderInstance
        r   r   r   r   r   r   r   N)r	   r   r   r   r   r   r   r   r   r   r   l  s     	   zChannelsSenderList.page_async)
target_urlr   c                 C   s   | j jjd|}t| j |S )a  
        Retrieve a specific page of ChannelsSenderInstance records from the API.
        Request is executed immediately

        :param target_url: API-generated URL for the requested results page

        :returns: Page of ChannelsSenderInstance
        r   )r   domaintwiliorequestr   r   r   r   r   r   r   get_page  s    	zChannelsSenderList.get_pagec                    s$   | j jjd|I dH }t| j |S )a  
        Asynchronously retrieve a specific page of ChannelsSenderInstance records from the API.
        Request is executed immediately

        :param target_url: API-generated URL for the requested results page

        :returns: Page of ChannelsSenderInstance
        r   N)r   r   r   Zrequest_asyncr   r   r   r   r   get_page_async  s    	z!ChannelsSenderList.get_page_async)r   r   c                 C   s   t | j|dS z`
        Constructs a ChannelsSenderContext

        :param sid: The SID of the sender.
        r   r   r   r   r   r   r   r   r     s    zChannelsSenderList.getc                 C   s   t | j|dS r   r   r   r   r   r   __call__  s    zChannelsSenderList.__call__r   c                 C   s   dS )r   z(<Twilio.Messaging.V2.ChannelsSenderList>r   r!   r   r   r   r     s    zChannelsSenderList.__repr__)*r$   r%   r&   r   r)   r<   rE   rK   rQ   r[   ra   rm   rs   r   r   r   r   r   r   r	   r   r   r(   r   intr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s   6!#



 



&



$r   N)r'   typingr   r   r   r   r   r   r   Ztwilio.baser	   Ztwilio.base.instance_contextr
   Ztwilio.base.instance_resourcer   Ztwilio.base.list_resourcer   Ztwilio.base.versionr   Ztwilio.base.pager   r   r   r   r   r   r   r   r   <module>   s"   $   3   ,