
                         >    S r SSKJr  SSKJr  SrSr " S S\5      rg)	z2Support library to handle the release subcommands.    )client_util)logz5targetSnapshots.name:"{}" AND renderState="SUCCEEDED"z-projects/{}/locations/{}/deliveryPipelines/{}c                   :    \ rS rSrSrS
S jrS rS rS rS r	S	r
g)ReleaseClient   z3Client for release service in the Cloud Deploy API.Nc                     U=(       d    [         R                  " 5       U l        U=(       d    [         R                  " U5      U l        U R                  R
                  U l        g)zInitialize a release.ReleaseClient.

Args:
  client: base_api.BaseApiClient, the client class for Cloud Deploy.
  messages: module containing the definitions of messages for Cloud Deploy.
N)r   GetClientInstanceclientGetMessagesModulemessages-projects_locations_deliveryPipelines_releases_service)selfr
   r   s      1lib/googlecloudsdk/api_lib/clouddeploy/release.py__init__ReleaseClient.__init__   sA     ;K99;DKE = =f EDMKKMMDM    c                     [         R                  " SU5        U R                  R                  U R                  R                  UR                  5       R                  5       UUR                  5       S95      $ )zCreate the release resource.

Args:
  release_ref: release resource object.
  release_config: release message.

Returns:
  The operation message.
zcreating release: %r)parentrelease	releaseId)	r   debugr   Creater   BClouddeployProjectsLocationsDeliveryPipelinesReleasesCreateRequestParentRelativeNameName)r   release_refrelease_configs      r   r   ReleaseClient.Create(   sf     II$n5==	K	K%%'446"!&&( 
L 
*+ +r   c                 j    U R                   R                  US9nU R                  R                  U5      $ )z\Gets a release resource.

Args:
  name: release resource name.

Returns:
  release message.
name)r   ?ClouddeployProjectsLocationsDeliveryPipelinesReleasesGetRequestr   Getr   r#   requests      r   r%   ReleaseClient.Get;   s6     mm[[ \ G==W%%r   c                    UR                  5       nU R                  R                  [        R	                  UUS   U5      [
        R	                  UR                  5       5      S9nU R                  R                  U5      R                  $ )zLists the releases in a target.

Args:
  target_ref_project_number: target reference with project number in the
    name.
  project_id: str, project ID.
  pipeline_id: str, delivery pipeline ID.

Returns:
  a list of release messages.
locationsId)r   filter)
AsDictr   @ClouddeployProjectsLocationsDeliveryPipelinesReleasesListRequestRELEASE_PARENT_TEMPLATEformatTARGET_FILTER_TEMPLATEr   r   Listreleases)r   target_ref_project_number
project_idpipeline_idtarget_dictr'   s         r   ListReleasesByTarget"ReleaseClient.ListReleasesByTargetH   s     ,224Kmm\\&--j.9-.H.9; &,,%2246	 ] 7G ==g&///r   c                 j    U R                   R                  US9nU R                  R                  U5      $ )zfAbandons a release.

Args:
  name: release resource name.

Returns:
  AbandonReleaseResponse message.
r"   )r   CClouddeployProjectsLocationsDeliveryPipelinesReleasesAbandonRequestr   Abandonr&   s      r   r;   ReleaseClient.Abandon^   s6     mm__ ` G==  ))r   )r   r
   r   )NN)__name__
__module____qualname____firstlineno____doc__r   r   r%   r7   r;   __static_attributes__ r   r   r   r      s    ;	N+&&0,*r   r   N)	rA   "googlecloudsdk.api_lib.clouddeployr   googlecloudsdk.corer   r0   r.   objectr   rC   r   r   <module>rG      s.    9 ; #9 I O*F O*r   