
    ,Of                     Z    d dl mZ d dlmZ d dlmZ d dlZd dlmZm	Z	m
Z
  G d de	      Zy)    )annotations)datetime)AnyN)	AttributeCompletableGithubObjectNotSetc                     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edd       ZddZdddZddZy)GitReleaseAssetz
    This class represents GitReleaseAssets.

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

    c                   t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _	        t         | _
        t         | _        t         | _        y N)r   _url_id_name_label_content_type_state_size_download_count_created_at_updated_at_browser_download_url	_uploaderselfs    6lib/python3.12/site-packages/github/GitReleaseAsset.py_initAttributeszGitReleaseAsset._initAttributes<   s[    $*	#)%+
&,-3&,%+
/506065;"@F    c                <    | j                  d| j                  i      S )Nurl)get__repr__r   r   s    r   __repr__zGitReleaseAsset.__repr__J   s     122r   c                d    | j                  | j                         | j                  j                  S r   )_completeIfNotSetr   valuer   s    r   r   zGitReleaseAsset.urlM   s"    tyy)yyr   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   idzGitReleaseAsset.idR   s"    txx(xx~~r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   namezGitReleaseAsset.nameW   $    tzz*zzr   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   labelzGitReleaseAsset.label\   $    t{{+{{   r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   content_typezGitReleaseAsset.content_typea   s(    t112!!'''r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   statezGitReleaseAsset.statef   r,   r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   sizezGitReleaseAsset.sizek   r)   r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   download_countzGitReleaseAsset.download_countp   s(    t334##)))r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   
created_atzGitReleaseAsset.created_atu   (    t//0%%%r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   
updated_atzGitReleaseAsset.updated_atz   r7   r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   browser_download_urlz$GitReleaseAsset.browser_download_url   s(    t99:))///r   c                d    | j                  | j                         | j                  j                  S r   )r#   r   r$   r   s    r   uploaderzGitReleaseAsset.uploader   s$    t~~.~~###r   c                V    | j                   j                  d| j                        \  }}y)z0
        Delete asset from the release.
        DELETET)
_requesterrequestJsonAndCheckr   )r   headersdatas      r   delete_assetzGitReleaseAsset.delete_asset   s%     ;;HdhhOr   c                    t        |t              sJ |       t        |t              sJ |       ||d}| j                  j                  d| j                  |      \  }}t        | j                  ||d      S )z(
        Update asset metadata.
        )r(   r+   PATCH)inputT)	completed)
isinstancestrr@   rA   r   r
   )r   r(   r+   post_parametersrB   rC   s         r   update_assetzGitReleaseAsset.update_asset   sq     $$*d*$%%,u,%#'%8;;GTXXUd;etNNr   c                   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
         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        y y )Nr   r&   r(   r+   r=   r.   r0   r2   r4   r6   r9   r;   )_makeStringAttributer   _makeIntAttributer   r   r   _makeClassAttributegithub	NamedUserr   r   r   r   r   _makeDatetimeAttributer   r   r   )r   
attributess     r   _useAttributeszGitReleaseAsset._useAttributes   s   J11*U2CDDI:--j.>?DHZ22:f3EFDJj 33Jw4GHDK#!55f6F6F6P6PR\]gRhiDNZ'!%!:!::n;U!VDj 33Jw4GHDKZ//
60BCDJz)#'#9#9*EU:V#WD :%#:::l;STD:%#:::l;STD!Z/)-)B)B:NdCe)fD& 0r   N)returnNone)rV   rJ   )rV   int)rV   r   )rV   zgithub.NamedUser.NamedUser)rV   bool) )r(   rJ   r+   rJ   rV   r
   )rT   zdict[str, Any]rV   rW   )__name__
__module____qualname____doc__r   r!   propertyr   r&   r(   r+   r.   r0   r2   r4   r6   r9   r;   r=   rD   rL   rU    r   r   r
   r
   3   s   G3         ! ! ( ( ! !     * * & & & & 0 0 $ $Ogr   r
   )
__future__r   r   typingr   github.NamedUserrQ   github.GithubObjectr   r   r   r
   r`   r   r   <module>re      s+   T #    J Jg- gr   