
    ,Of;#                        d dl mZ d dlZd dlmZ d dlmZ d dlZd dl	Zd dl
Zd dlZd dlmZ d dlmZmZmZ  G d de      Zy)	    )annotationsN)datetime)Any)Consts)	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ddZddZddZddZddZy)	Migrationz
    This class represents Migrations.

    The reference can be found here
    https://docs.github.com/en/rest/reference/migrations

    c                    t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        y N)	r	   _id_owner_guid_state_lock_repositories_exclude_attachments_repositories_urlselfs    0lib/python3.12/site-packages/github/Migration.py_initAttributeszMigration._initAttributesE   s=    #)=C%+
&,395;!LR$*	    c                z    | j                  | j                  j                  | j                  j                  d      S )N)stateurl)get__repr__r   valuer   r   s    r   __repr__zMigration.__repr__O   s*    $++*;*;DIIOO TUUr   c                .    | j                   j                  S r   )r   r   r   s    r   idzMigration.idR   s    xx~~r   c                d    | j                  | j                         | j                  j                  S r   )_completeIfNotSetr   r   r   s    r   ownerzMigration.ownerV   s$    t{{+{{   r   c                d    | j                  | j                         | j                  j                  S r   )r$   r   r   r   s    r   guidzMigration.guid[   s$    tzz*zzr   c                d    | j                  | j                         | j                  j                  S r   )r$   r   r   r   r   s    r   r   zMigration.state`   s$    tzz*{{   r   c                d    | j                  | j                         | j                  j                  S r   )r$   r   r   r   r   s    r   lock_repositorieszMigration.lock_repositoriese   s(    t112&&,,,r   c                d    | j                  | j                         | j                  j                  S r   )r$   r   r   r   s    r   exclude_attachmentszMigration.exclude_attachmentsj   s(    t889((...r   c                d    | j                  | j                         | j                  j                  S r   )r$   r   r   r   s    r   repositorieszMigration.repositorieso   s(    t112!!'''r   c                d    | j                  | j                         | j                  j                  S r   )r$   r   r   r   s    r   r   zMigration.urlt   s"    tyy)yyr   c                d    | j                  | j                         | j                  j                  S r   )r$   _created_atr   r   s    r   
created_atzMigration.created_aty   (    t//0%%%r   c                d    | j                  | j                         | j                  j                  S r   )r$   _updated_atr   r   s    r   
updated_atzMigration.updated_at~   r3   r   c                    | j                   j                  d| j                  dt        j                  i      \  }}| j                  |       | j                  S )zw
        :calls: `GET /user/migrations/{migration_id} <https://docs.github.com/en/rest/reference/migrations>`_
        GETAcceptheaders)
_requesterrequestJsonAndCheckr   r   mediaTypeMigrationPreview_useAttributesr   r   r;   datas      r   
get_statuszMigration.get_status   sQ     ;;488h0P0P%Q < 
 	D!zzr   c                    | j                   j                  d| j                   ddt        j                  i      \  }}|d   S )z
        :calls: `GET /user/migrations/{migration_id}/archive <https://docs.github.com/en/rest/reference/migrations>`_
        r8   /archiver9   r:   rA   r<   r=   r   r   r>   r@   s      r   get_archive_urlzMigration.get_archive_url   sL     ;;xxj!v??@ < 

 F|r   c                    | j                   j                  d| j                   ddt        j                  i      \  }}y)z
        :calls: `DELETE /user/migrations/{migration_id}/archive <https://docs.github.com/en/rest/reference/migrations>`_
        DELETErD   r9   r:   NrE   r@   s      r   deletezMigration.delete   s@     ;;xxj!v??@ < 
r   c                    t        |t              sJ |       t        j                  j	                  |      }| j
                  j                  d| j                   d| ddt        j                  i      \  }}y)z
        :calls: `DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock <https://docs.github.com/en/rest/reference/migrations>`_
        rH   z/repos/z/lockr9   r:   N)

isinstancestrurllibparsequoter<   r=   r   r   r>   )r   	repo_namer;   rA   s       r   unlock_repozMigration.unlock_repo   so     )S)494)LL&&y1	;;xxj	{%0v??@ < 
r   c                   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 r2| j                  t        j                  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,   r.   r   r2   r6   )_makeIntAttributer   _makeClassAttributegithub	NamedUserr   _makeStringAttributer   r   _makeBoolAttributer   r   _makeListOfClassesAttribute
Repositoryr   r   _makeDatetimeAttributer1   r5   )r   
attributess     r   r?   zMigration._useAttributes   sf   :--j.>?DHj 2263C3C3M3MzZaObcDKZ22:f3EFDJj 33Jw4GHDK*,&*&=&=jI\>]&^D# J.(,(?(?
K`@a(bD%Z'!%!A!A!!,,j.H"D J11*U2CDDI:%#:::l;STD:%#:::l;STD &r   N)returnNone)r]   rL   )r]   int)r]   zgithub.NamedUser.NamedUser)r]   bool)r]   z"list[github.Repository.Repository])r]   r   )rP   rL   r]   r^   )r\   zdict[str, Any]r]   r^   )__name__
__module____qualname____doc__r   r    propertyr"   r%   r'   r   r*   r,   r.   r   r2   r6   rB   rF   rI   rQ   r?    r   r   r   r   <   s    +V   ! !     ! ! - - / / ( (   & & & &	


Ur   r   )
__future__r   urllib.parserM   r   typingr   github.GithubObjectrU   github.NamedUsergithub.PaginatedListgithub.Repositoryr   r   r   r	   r   rf   r   r   <module>rn      s:   \ #         J JHU' HUr   