o
    �¨Êh\  ã                   @   sœ   d 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
 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 )za
This code was generated by
\ / _    _  _|   _  _
 | (_)\/(_)(_|\/| |(/_  v1.0.0
      /       /
é    )Údeserialize)Ú	serialize)Úvalues)ÚInstanceContext)ÚInstanceResource)ÚListResource)ÚPagec                	       sÄ   e Zd ZdZ‡ fdd„Zejejejddfdd„Zejejejddfdd„Zejejejejejejfd	d
„Z	dd„ Z
ejejejejejejejejejf	dd„Zdd„ Zdd„ Zdd„ Z‡  ZS )ÚCompositionHookListúÉ PLEASE NOTE that this class contains preview products that are subject
    to change. Use them with caution. If you currently do not have developer
    preview access, please contact help@twilio.com. c                    s.   t t| ƒ |¡ i | _djdi | j¤Ž| _dS )a  
        Initialize the CompositionHookList

        :param Version version: Version that contains the resource

        :returns: twilio.rest.video.v1.composition_hook.CompositionHookList
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookList
        z/CompositionHooksN© )Úsuperr	   Ú__init__Ú	_solutionÚformatÚ_uri)ÚselfÚversion©Ú	__class__r   úW/var/www/html/env/lib/python3.10/site-packages/twilio/rest/video/v1/composition_hook.pyr      s   	zCompositionHookList.__init__Nc                 C   s<   | j  ||¡}| j||||d d�}| j  ||d |d ¡S )a  
        Streams CompositionHookInstance 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 bool enabled: Only show Composition Hooks enabled or disabled.
        :param datetime date_created_after: Only show Composition Hooks created on or after this ISO8601 date-time.
        :param datetime date_created_before: Only show Composition Hooks created before this this ISO8601 date-time.
        :param int limit: Upper limit for the number of records to return. stream()
                          guarantees to never return more than limit.  Default is no limit
        :param int 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
        :rtype: list[twilio.rest.video.v1.composition_hook.CompositionHookInstance]
        Ú	page_size)ÚenabledÚdate_created_afterÚdate_created_beforer   ÚlimitÚ
page_limit)Ú_versionÚread_limitsÚpageÚstream)r   r   r   r   r   r   Úlimitsr   r   r   r   r   &   s   üzCompositionHookList.streamc                 C   s   t | j|||||d�ƒS )a¨  
        Lists CompositionHookInstance records from the API as a list.
        Unlike stream(), this operation is eager and will load `limit` records into
        memory before returning.

        :param bool enabled: Only show Composition Hooks enabled or disabled.
        :param datetime date_created_after: Only show Composition Hooks created on or after this ISO8601 date-time.
        :param datetime date_created_before: Only show Composition Hooks created before this this ISO8601 date-time.
        :param int limit: Upper limit for the number of records to return. list() guarantees
                          never to return more than limit.  Default is no limit
        :param int 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: Generator that will yield up to limit results
        :rtype: list[twilio.rest.video.v1.composition_hook.CompositionHookInstance]
        )r   r   r   r   r   )Úlistr   )r   r   r   r   r   r   r   r   r   r!   F   s   ûzCompositionHookList.listc           	   	   C   sH   t  |t |¡t |¡|||dœ¡}| jjd| j|d�}t| j|| jƒS )a  
        Retrieve a single page of CompositionHookInstance records from the API.
        Request is executed immediately

        :param bool enabled: Only show Composition Hooks enabled or disabled.
        :param datetime date_created_after: Only show Composition Hooks created on or after this ISO8601 date-time.
        :param datetime date_created_before: Only show Composition Hooks created before this this ISO8601 date-time.
        :param str page_token: PageToken provided by the API
        :param int page_number: Page Number, this value is simply for client state
        :param int page_size: Number of records to return, defaults to 50

        :returns: Page of CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookPage
        )ÚEnabledÚDateCreatedAfterÚDateCreatedBeforeÚ	PageTokenr   ÚPageSizeÚGET©Úparams)	r   Úofr   Úiso8601_datetimer   r   r   ÚCompositionHookPager   )	r   r   r   r   Ú
page_tokenÚpage_numberr   r)   Úresponser   r   r   r   b   s   ú	ýzCompositionHookList.pagec                 C   s"   | j jj d|¡}t| j || jƒS )aQ  
        Retrieve a specific page of CompositionHookInstance records from the API.
        Request is executed immediately

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

        :returns: Page of CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookPage
        r'   )r   ÚdomainÚtwilioÚrequestr,   r   )r   Ú
target_urlr/   r   r   r   Úget_page„   s
   

þzCompositionHookList.get_pagec                 C   s^   t  ||t |¡t |dd„ ¡t |dd„ ¡||||	|
dœ
¡}| jjd| j|d�}t| j|ƒS )a¢  
        Create a new CompositionHookInstance

        :param unicode friendly_name: Friendly name of the Composition Hook to be shown in the console.
        :param bool enabled: Boolean flag for activating the Composition Hook.
        :param dict video_layout: The JSON video layout description.
        :param unicode audio_sources: A list of audio sources related to this Composition Hook.
        :param unicode audio_sources_excluded: A list of audio sources excluded related to this Composition Hook.
        :param unicode resolution: Pixel resolution of the composed video.
        :param CompositionHookInstance.Format format: Container format of the Composition Hook media file. Any of the following: `mp4`, `webm`.
        :param unicode status_callback: A URL that Twilio sends asynchronous webhook requests to on every composition event.
        :param unicode status_callback_method: HTTP method Twilio should use when requesting the above URL.
        :param bool trim: Boolean flag for clipping intervals that have no media.

        :returns: Newly created CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        c                 S   ó   | S ©Nr   ©Úer   r   r   Ú<lambda>¯   ó    z,CompositionHookList.create.<locals>.<lambda>c                 S   r5   r6   r   r7   r   r   r   r9   °   r:   )
ÚFriendlyNamer"   ÚVideoLayoutÚAudioSourcesÚAudioSourcesExcludedÚ
ResolutionÚFormatÚStatusCallbackÚStatusCallbackMethodÚTrimÚPOST©Údata)	r   r*   r   ÚobjectÚmapr   Úcreater   ÚCompositionHookInstance)r   Úfriendly_namer   Úvideo_layoutÚaudio_sourcesÚaudio_sources_excludedÚ
resolutionr   Ústatus_callbackÚstatus_callback_methodÚtrimrF   Úpayloadr   r   r   rI   •   s$   öýzCompositionHookList.createc                 C   ó   t | j|d�S ©a8  
        Constructs a CompositionHookContext

        :param sid: The Composition Hook Sid that uniquely identifies the Composition Hook to fetch.

        :returns: twilio.rest.video.v1.composition_hook.CompositionHookContext
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookContext
        ©Úsid©ÚCompositionHookContextr   ©r   rW   r   r   r   ÚgetÀ   ó   	zCompositionHookList.getc                 C   rT   rU   rX   rZ   r   r   r   Ú__call__Ë   r\   zCompositionHookList.__call__c                 C   ó   dS )úz
        Provide a friendly representation

        :returns: Machine friendly representation
        :rtype: str
        z%<Twilio.Video.V1.CompositionHookList>r   ©r   r   r   r   Ú__repr__Ö   ó   zCompositionHookList.__repr__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úunsetr   r!   r   r4   rI   r[   r]   ra   Ú__classcell__r   r   r   r   r	      s.    
ÿ 
ÿ
þ"
ü+r	   c                       s0   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Z‡  ZS )r,   r
   c                    s   t t| ƒ ||¡ || _dS )aG  
        Initialize the CompositionHookPage

        :param Version version: Version that contains the resource
        :param Response response: Response from the API

        :returns: twilio.rest.video.v1.composition_hook.CompositionHookPage
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookPage
        N)r   r,   r   r   )r   r   r/   Úsolutionr   r   r   r   å   s   

zCompositionHookPage.__init__c                 C   s   t | j|ƒS )a  
        Build an instance of CompositionHookInstance

        :param dict payload: Payload response from the API

        :returns: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        )rJ   r   )r   rS   r   r   r   Úget_instanceô   s   	z CompositionHookPage.get_instancec                 C   r^   )r_   z%<Twilio.Video.V1.CompositionHookPage>r   r`   r   r   r   ra   ÿ   rb   zCompositionHookPage.__repr__)rc   rd   re   rf   r   rj   ra   rh   r   r   r   r   r,   à   s
    r,   c                	       sf   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zejejejejejejejejejf	dd	„Z	d
d„ Z
‡  ZS )rY   r
   c                    s2   t t| ƒ |¡ d|i| _djdi | j¤Ž| _dS )a}  
        Initialize the CompositionHookContext

        :param Version version: Version that contains the resource
        :param sid: The Composition Hook Sid that uniquely identifies the Composition Hook to fetch.

        :returns: twilio.rest.video.v1.composition_hook.CompositionHookContext
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookContext
        rW   z/CompositionHooks/{sid}Nr   )r   rY   r   r   r   r   )r   r   rW   r   r   r   r     s   

zCompositionHookContext.__init__c                 C   s4   t  i ¡}| jjd| j|d�}t| j|| jd d�S )ú²
        Fetch a CompositionHookInstance

        :returns: Fetched CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        r'   r(   rW   rV   )r   r*   r   Úfetchr   rJ   r   )r   r)   rS   r   r   r   rl     s   
ýzCompositionHookContext.fetchc                 C   s   | j  d| j¡S )ú†
        Deletes the CompositionHookInstance

        :returns: True if delete succeeds, False otherwise
        :rtype: bool
        Údelete)r   rn   r   r`   r   r   r   rn   /  s   zCompositionHookContext.deletec                 C   sh   t  ||t |¡t |dd„ ¡t |dd„ ¡||||	|
dœ
¡}| jjd| j|d�}t| j|| j	d d�S )	áš  
        Update the CompositionHookInstance

        :param unicode friendly_name: Friendly name of the Composition Hook to be shown in the console.
        :param bool enabled: Boolean flag for activating the Composition Hook.
        :param dict video_layout: The JSON video layout description.
        :param unicode audio_sources: A list of audio sources related to this Composition Hook.
        :param unicode audio_sources_excluded: A list of audio sources excluded related to this Composition Hook.
        :param bool trim: Boolean flag for clipping intervals that have no media.
        :param CompositionHookInstance.Format format: Container format of the Composition Hook media file. Any of the following: `mp4`, `webm`.
        :param unicode resolution: Pixel resolution of the composed video.
        :param unicode status_callback: A URL that Twilio sends asynchronous webhook requests to on every composition event.
        :param unicode status_callback_method: HTTP method Twilio should use when requesting the above URL.

        :returns: Updated CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        c                 S   r5   r6   r   r7   r   r   r   r9   Q  r:   z/CompositionHookContext.update.<locals>.<lambda>c                 S   r5   r6   r   r7   r   r   r   r9   R  r:   )
r;   r"   r<   r=   r>   rC   r@   r?   rA   rB   rD   rE   rW   rV   )
r   r*   r   rG   rH   r   Úupdater   rJ   r   )r   rK   r   rL   rM   rN   rR   r   rO   rP   rQ   rF   rS   r   r   r   rp   8  s$   öýzCompositionHookContext.updatec                 C   ó$   d  dd„ | j ¡ D ƒ¡}d |¡S )r_   ú c                 s   ó    � | ]\}}d   ||¡V  qdS ©z{}={}N©r   ©Ú.0ÚkÚvr   r   r   Ú	<genexpr>i  ó   € z2CompositionHookContext.__repr__.<locals>.<genexpr>z+<Twilio.Video.V1.CompositionHookContext {}>©Újoinr   Úitemsr   ©r   Úcontextr   r   r   ra   b  ó   
zCompositionHookContext.__repr__)rc   rd   re   rf   r   rl   rn   r   rg   rp   ra   rh   r   r   r   r   rY   	  s    	
ý*rY   c                	       s8  e Zd ZdZG dd„ deƒZd/‡ fdd„	Zedd„ ƒZed	d
„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd „ ƒZed!d"„ ƒZed#d$„ ƒZed%d&„ ƒZd'd(„ Zd)d*„ Zejejejejejejejejejf	d+d,„Zd-d.„ Z‡  ZS )0rJ   r
   c                   @   s   e Zd ZdZdZdS )zCompositionHookInstance.FormatÚmp4ÚwebmN)rc   rd   re   ÚMP4ÚWEBMr   r   r   r   r@   r  s    r@   Nc                    s–   t t| ƒ |¡ |d |d |d t |d ¡|d |d |d |d |d	 |d
 |d |d |d |d |d dœ| _d| _d|pF| jd i| _dS )z×
        Initialize the CompositionHookInstance

        :returns: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookInstance
        Úaccount_sidrK   r   Údate_createdÚdate_updatedrW   rM   rN   rL   rO   rR   r   rP   rQ   Úurl)r†   rK   r   r‡   rˆ   rW   rM   rN   rL   rO   rR   r   rP   rQ   r‰   N)r   rJ   r   r   r+   Ú_propertiesÚ_contextr   )r   r   rS   rW   r   r   r   r   v  s&   ñz CompositionHookInstance.__init__c                 C   s&   | j du rt| j| jd d�| _ | j S )aG  
        Generate an instance context for the instance, the context is capable of
        performing various actions.  All instance actions are proxied to the context

        :returns: CompositionHookContext for this CompositionHookInstance
        :rtype: twilio.rest.video.v1.composition_hook.CompositionHookContext
        NrW   rV   )r‹   rY   r   r   r`   r   r   r   Ú_proxy–  s   
	zCompositionHookInstance._proxyc                 C   ó
   | j d S )zG
        :returns: Twilio Account SID.
        :rtype: unicode
        r†   ©rŠ   r`   r   r   r   r†   £  ó   
z#CompositionHookInstance.account_sidc                 C   r�   )zu
        :returns: Friendly name of the Composition Hook to be shown in the console.
        :rtype: unicode
        rK   rŽ   r`   r   r   r   rK   «  r�   z%CompositionHookInstance.friendly_namec                 C   r�   )zb
        :returns: Boolean flag for activating the Composition Hook.
        :rtype: bool
        r   rŽ   r`   r   r   r   r   ³  r�   zCompositionHookInstance.enabledc                 C   r�   )zi
        :returns: Date when the Composition Hook Resource was created.
        :rtype: datetime
        r‡   rŽ   r`   r   r   r   r‡   »  r�   z$CompositionHookInstance.date_createdc                 C   r�   )zd
        :returns: Date when the Composition Hook was last updated.
        :rtype: unicode
        rˆ   rŽ   r`   r   r   r   rˆ   Ã  r�   z$CompositionHookInstance.date_updatedc                 C   r�   )zy
        :returns: A 34-character string that uniquely identifies this Composition Hook.
        :rtype: unicode
        rW   rŽ   r`   r   r   r   rW   Ë  r�   zCompositionHookInstance.sidc                 C   r�   )zm
        :returns: A list of audio sources related to this Composition Hook.
        :rtype: unicode
        rM   rŽ   r`   r   r   r   rM   Ó  r�   z%CompositionHookInstance.audio_sourcesc                 C   r�   )zv
        :returns: A list of audio sources excluded related to this Composition Hook.
        :rtype: unicode
        rN   rŽ   r`   r   r   r   rN   Û  r�   z.CompositionHookInstance.audio_sources_excludedc                 C   r�   )zS
        :returns: The JSON video layout description.
        :rtype: dict
        rL   rŽ   r`   r   r   r   rL   ã  r�   z$CompositionHookInstance.video_layoutc                 C   r�   )z[
        :returns: Pixel resolution of the composed video.
        :rtype: unicode
        rO   rŽ   r`   r   r   r   rO   ë  r�   z"CompositionHookInstance.resolutionc                 C   r�   )zh
        :returns: Boolean flag for clipping intervals that have no media.
        :rtype: bool
        rR   rŽ   r`   r   r   r   rR   ó  r�   zCompositionHookInstance.trimc                 C   r�   )z’
        :returns: The file format for the Compositions triggered by the Composition Hook.
        :rtype: CompositionHookInstance.Format
        r   rŽ   r`   r   r   r   r   û  r�   zCompositionHookInstance.formatc                 C   r�   )zG
        :returns: The status_callback
        :rtype: unicode
        rP   rŽ   r`   r   r   r   rP     r�   z'CompositionHookInstance.status_callbackc                 C   r�   )zN
        :returns: The status_callback_method
        :rtype: unicode
        rQ   rŽ   r`   r   r   r   rQ     r�   z.CompositionHookInstance.status_callback_methodc                 C   r�   )zW
        :returns: The absolute URL for this resource.
        :rtype: unicode
        r‰   rŽ   r`   r   r   r   r‰     r�   zCompositionHookInstance.urlc                 C   ó
   | j  ¡ S )rk   )rŒ   rl   r`   r   r   r   rl     ó   
zCompositionHookInstance.fetchc                 C   r�   )rm   )rŒ   rn   r`   r   r   r   rn   $  r‘   zCompositionHookInstance.deletec                 C   s    | j j|||||||||	|
d�
S )ro   )	r   rL   rM   rN   rR   r   rO   rP   rQ   )rŒ   rp   )r   rK   r   rL   rM   rN   rR   r   rO   rP   rQ   r   r   r   rp   -  s   özCompositionHookInstance.updatec                 C   rq   )r_   rr   c                 s   rs   rt   ru   rv   r   r   r   rz   V  r{   z3CompositionHookInstance.__repr__.<locals>.<genexpr>z,<Twilio.Video.V1.CompositionHookInstance {}>r|   r   r   r   r   ra   O  r�   z CompositionHookInstance.__repr__r6   )rc   rd   re   rf   rG   r@   r   ÚpropertyrŒ   r†   rK   r   r‡   rˆ   rW   rM   rN   rL   rO   rR   r   rP   rQ   r‰   rl   rn   r   rg   rp   ra   rh   r   r   r   r   rJ   m  sX     















		
ý"rJ   N)rf   Útwilio.baser   r   r   Útwilio.base.instance_contextr   Útwilio.base.instance_resourcer   Útwilio.base.list_resourcer   Útwilio.base.pager   r	   r,   rY   rJ   r   r   r   r   Ú<module>   s    O)d