
    X                         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 dd	lmZ dd
lmZ  G d dej                         Zdddj%                  dd      de_        y)zAImplements the command to upload Debian packages to a repository.    )absolute_import)division)unicode_literals)transfer)apis)waiter)base)flags)	resourcesc                   *    e Zd ZdZdZed        Zd Zy)Upload2Upload a Debian package to an artifact repository.v1c                     t        j                         j                  |        t        j                  j                  |        | j                  dddd       y)z\Set up arguements for this command.

    Args:
      parser: An argparse.ArgumentPaser.
    z--sourceSOURCETz,            The path of a package to upload.)metavarrequiredhelpN)r
   
GetRepoArgAddToParserr	   
ASYNC_FLAGadd_argument)parsers    #lib/surface/artifacts/apt/upload.pyArgszUpload.Args#   sN     
""6*OO'
0	  1    c                    t        j                  d| j                        }|j                  }d|j                  d<   |j
                  j                  j                         }|j                  } |       }|j                  ||j                               }t        j                  j                  |j                  d      }|j                  j                  ||      }	|	j                   }
t"        j$                  j'                  |
j(                  d	      }|j*                  r|S t-        j.                  t-        j0                  |j2                        |d
      }|S )zRun package import command.artifactregistry	multipartzX-Goog-Upload-Protocol)uploadAptArtifactRequestparentz%application/vnd.debian.binary-package)	mime_type)uploadz.artifactregistry.projects.locations.operations)
collectionzUploading package)r   GetClientInstanceapi_versionMESSAGES_MODULEadditional_http_headersCONCEPTS
repositoryParseUploadAptArtifactRequestFArtifactregistryProjectsLocationsRepositoriesAptArtifactsUploadRequestRelativeNamer   r   FromFilesource,projects_locations_repositories_aptArtifacts	operationr   REGISTRYParseRelativeNamenameasync_r   WaitForCloudOperationPollerNoResourcesprojects_locations_operations)selfargsclientmessagesrepo_ref
upload_requpload_requestrequestr#   op_objopop_refresults                r   Runz
Upload.Run4   sB   ##$68H8HIF%%H?JF""#;<}}''--/H22J\N]]!/$$& ^ (G __%%F & HF @@GG H  F 
		B11
L 2 NF {{m~~

0
0224
%'f
 mr   N)__name__
__module____qualname____doc__r&   staticmethodr   rF    r   r   r   r      s!    :+1 1 "r   r   r   zX
      *{command}* uploads a Debian package to the specified artifact repository.
      z
      To upload the package `my-package.deb` to `my-repo`, run:

        $ {0} my-repo --location=us-central1 --source={1}
    z	{command}zmy-package.deb)briefDESCRIPTIONEXAMPLESN)rJ   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper	   $googlecloudsdk.command_lib.artifactsr
   googlecloudsdk.corer   Commandr   formatdetailed_helprL   r   r   <module>rY      s`     H &  ' % , . ( 6 )8T\\ 8x B
 	{,-
 r   