
                         z   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  ej                   ej"                  j$                  ej"                  j&                  ej"                  j(                         G d dej*                               Zdddj/                  dd      de_        y)zAImplements the command to upload GooGet packages to a repository.    )absolute_import)division)unicode_literals)transfer)apis)waiter)base)flags)	resourcesc                   &    e Zd ZdZed        Zd Zy)Upload2Upload a GooGet package to an artifact repository.c                     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
   GetRepoArgFromBetaAddToParserr	   
ASYNC_FLAGadd_argument)parsers    &lib/surface/artifacts/googet/upload.pyArgszUpload.Args#   sN     
**62OO'
0	  1    c                 r   t        j                  dd      }|j                  }d|j                  d<   |j                  j
                  j                         }|j                  |j                               }t        j                  j                  |j                  d      }|j                  j                  ||      }|j                  }t        j                   j#                  |j$                  d	
      }	|j&                  r|	S t)        j*                  t)        j,                  |j.                        |	d      }
|
S )zRun package import command.artifactregistryv1	multipartzX-Goog-Upload-Protocol)parentzapplication/gzip)	mime_type)uploadz.artifactregistry.projects.locations.operations)
collectionzUploading package)r   GetClientInstanceMESSAGES_MODULEadditional_http_headersCONCEPTS
repositoryParseIArtifactregistryProjectsLocationsRepositoriesGoogetArtifactsUploadRequestRelativeNamer   r   FromFilesource/projects_locations_repositories_googetArtifacts	operationr   REGISTRYParseRelativeNamenameasync_r   WaitForCloudOperationPollerNoResourcesprojects_locations_operations)selfargsclientmessagesrepo_refrequestr"   responseopop_refresults              r   Runz
Upload.Run4   s   ##$6=F%%H?JF""#;<}}''--/H``$$& a (G __%%dkk=O%PFEELL M  H 
		B11
L 2 NF {{m~~

0
0224
%'f
 mr   N)__name__
__module____qualname____doc__staticmethodr   rA    r   r   r   r      s     ;1 1 r   r   r   zX
      *{command}* uploads a GooGet package to the specified artifact repository.
      z
      To upload the package `my-package.goo` to `my-repo`, run:

        $ {0} my-repo --location=us-central1 --source={1}
    z	{command}zmy-package.goo)briefDESCRIPTIONEXAMPLESN)rE   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper	   $googlecloudsdk.command_lib.artifactsr
   googlecloudsdk.corer   ReleaseTracksReleaseTrackALPHABETAGACommandr   formatdetailed_helprG   r   r   <module>rY      s     H &  ' % , . ( 6 ) D%%++T->->-C-C%%((*1T\\ 1*1j B
 	{,-
 r   