
    ,Of$                    n    d dl mZ d dlmZ d dlmZ d dlZd dlZd dlmZm	Z	m
Z
mZmZmZ  G d de	      Zy)    )annotations)datetime)AnyN)	AttributeCompletableGithubObjectNotSetOptis_optionalis_optional_listc                  2   e Zd ZdZddZ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eeeef	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZy)Hookz
    This class represents Hooks.

    The reference can be found here
    https://docs.github.com/en/rest/reference/repos#webhooks

    c                    t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _	        t         | _
        t         | _        y N)r   _active_config_created_at_events_id_last_response_name	_test_url_updated_at_url	_ping_urlselfs    +lib/python3.12/site-packages/github/Hook.py_initAttributeszHook._initAttributes=   sR    (.(.06-3#)KQ%+
)/06$*	)/    c                z    | j                  | j                  j                  | j                  j                  d      S )N)idurl)get__repr__r   valuer   r   s    r   __repr__zHook.__repr__J   s(    txx~~diioo NOOr   c                d    | j                  | j                         | j                  j                  S r   )_completeIfNotSetr   r$   r   s    r   activezHook.activeM   $    t||,||!!!r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   configzHook.configR   r)   r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   
created_atzHook.created_atW   (    t//0%%%r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   eventszHook.events\   r)   r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   r!   zHook.ida   s"    txx(xx~~r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   last_responsezHook.last_responsef   s(    t223""(((r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   namez	Hook.namek   s$    tzz*zzr   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   test_urlzHook.test_urlp   $    t~~.~~###r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   
updated_atzHook.updated_atu   r.   r   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   r"   zHook.urlz   s"    tyy)yyr   c                d    | j                  | j                         | j                  j                  S r   )r'   r   r$   r   s    r   ping_urlzHook.ping_url   r8   r   c                V    | j                   j                  d| j                        \  }}y)z
        :calls: `DELETE /repos/{owner}/{repo}/hooks/{id} <https://docs.github.com/en/rest/reference/repos#webhooks>`_
        DELETEN
_requesterrequestJsonAndCheckr"   r   headersdatas      r   deletezHook.delete   s"     ;;HdhhOr   c           	        t        |t              sJ |       t        |t              sJ |       t        |t              sJ |       t        |t              sJ |       t        |t              sJ |       t	        |t
              sJ |       t        j                  ||||||d      }| j                  j                  d| j                  |      \  }}	| j                  |	       y)z~
        :calls: `PATCH /repos/{owner}/{repo}/hooks/{id} <https://docs.github.com/en/rest/reference/repos#webhooks>`_
        )r5   r+   r0   
add_eventsremove_eventsr(   PATCH)inputN)
isinstancestrdictr   r
   boolr   remove_unset_itemsrA   rB   r"   _useAttributes)
r   r5   r+   r0   rH   rI   r(   post_parametersrD   rE   s
             r   editz	Hook.edit   s     $$*d*$&$'//',4f4,
C0<*<0s3B]B364(0&0( 33  (!. 	
 ;;GTXXUd;eD!r   c                \    | j                   j                  d| j                   d      \  }}y)z
        :calls: `POST /repos/{owner}/{repo}/hooks/{id}/tests <https://docs.github.com/en/rest/reference/repos#webhooks>`_
        POSTz/testsNr@   rC   s      r   testz	Hook.test   *     ;;FtxxjPVDWXr   c                \    | j                   j                  d| j                   d      \  }}y)z
        :calls: `POST /repos/{owner}/{repo}/hooks/{id}/pings <https://docs.github.com/en/rest/reference/repos#webhooks>`_
        rU   z/pingsNr@   rC   s      r   pingz	Hook.ping   rW   r   c                   d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j	                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _	        d|v r2| j                  t        j                  j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d	|v r| j	                  |d	         | _        d
|v r| j                  |d
         | _        d|v r| j                  |d         | _        y y )Nr(   r+   r-   r0   r!   r3   r5   r7   r:   r"   r=   )_makeBoolAttributer   _makeDictAttributer   _makeDatetimeAttributer   _makeListOfStringsAttributer   _makeIntAttributer   _makeClassAttributegithubHookResponser   _makeStringAttributer   r   r   r   r   )r   
attributess     r   rQ   zHook._useAttributes   sr   z!22:h3GHDLz!22:h3GHDL:%#:::l;STDz!;;Jx<PQDL:--j.>?DHj("&":":##00*_2M#D Z22:f3EFDJ#!66z*7MNDN:%#:::l;STDJ11*U2CDDI#!66z*7MNDN $r   N)returnNone)re   rM   )re   rO   )re   rN   )re   r   )re   z	list[str])re   int)re   z github.HookResponse.HookResponse)r5   rM   r+   rN   r0   Opt[list[str]]rH   rh   rI   rh   r(   z	Opt[bool]re   rf   )rd   zdict[str, Any]re   rf   )__name__
__module____qualname____doc__r   r%   propertyr(   r+   r-   r0   r!   r3   r5   r7   r:   r"   r=   rF   r   rS   rV   rY   rQ    r   r   r   r   4   s^   0P " " " " & & " "   ) )     $ $ & &   $ $P "(%+(.""" " 	"
 #" &" " 
"@YYOr   r   )
__future__r   r   typingr   github.GithubObjectra   github.HookResponser   r   r   r	   r
   r   r   rn   r   r   <module>rs      s.   T #     n nZO" ZOr   