
    g                     b    S r SSKJr  SSKJr  SSKJ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.    )absolute_import)division)unicode_literals)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.ListReleasesByTargetK   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.Abandona   s6     mm__ ` G==  ))r   )r   r   r   )NN)__name__
__module____qualname____firstlineno____doc__r   r   r(   r:   r>   __static_attributes__ r   r   r	   r	      s    ;	N+&&0,*r   r	   N)rD   
__future__r   r   r   "googlecloudsdk.api_lib.clouddeployr   googlecloudsdk.corer   r3   r1   objectr	   rF   r   r   <module>rK      s5    9 &  ' : #9 I O*F O*r   