
                         F    S r SSKJr  SSKJr  SSKJr  Sr " S S\5      r	g)	z,Utilities for Package Rollouts Rollouts API.    )
list_pager)util)waiterz8configdelivery.projects.locations.fleetPackages.rolloutsc                   P    \ rS rSrSrSS jrSS jrS rSS jrSS jr	SS	 jr
S
rg)RolloutsClient   z<Client for Rollouts in Config Delivery Package Rollouts API.Nc                    U=(       d    [         R                  U l        U=(       d     [         R                  " U R                  5      U l        U=(       d     [         R
                  " U R                  5      U l        U R                  R                  U l        [        R                  " U R                  R                  S S9U l        g )Nc                     U R                   $ Nname)xs    ?lib/googlecloudsdk/api_lib/container/fleet/packages/rollouts.py<lambda>)RolloutsClient.__init__.<locals>.<lambda>"   s        )operation_serviceget_name_func)r   DEFAULT_API_VERSION_api_versionGetClientInstanceclientGetMessagesModulemessages)projects_locations_fleetPackages_rollouts_servicer   CloudOperationPollerNoResourcesprojects_locations_operationsrollout_waiter)selfapi_versionr   r   s       r   __init__RolloutsClient.__init__   s    #?t'?'?DED2243D3DEDKC 6 6t{{ CDMKKIIDM @@++CC&Dr   c           	          U R                   R                  SU SU SU 3SS9n[        R                  " U R                  USUUSS9$ )	a~  List Rollouts of a Fleet Package.

Args:
  project: GCP project id.
  location: Valid GCP location (e.g. us-central1).
  fleet_package: Name of parent Fleet Package.
  limit: int or None, the total number of results to return.
  page_size: int, the number of entries in each batch (affects requests
    made, but not the yielded results).

Returns:
  Generator of matching devices.
	projects//locations//fleetPackages/zcreate_time desc)parentorderByrolloutspageSize)field
batch_sizelimitbatch_size_attribute)r   ?ConfigdeliveryProjectsLocationsFleetPackagesRolloutsListRequestr   YieldFromListr   )r    projectlocationfleet_packager.   	page_sizelist_requests          r   ListRolloutsClient.List%   sb     ==``7);xjW" a L ##' r   c                     SU SU SU SU 3nU R                   R                  US9nU R                  R                  U5      $ )zDescribe a Rollout resource.

Args:
  project: GCP project ID.
  location: GCP location of Fleet Package.
  fleet_package: Name of parent Fleet Package.
  rollout: Name of Rollout.

Returns:
  Requested Rollout resource.
r%   r&   r'   
/rollouts/r   )r   >ConfigdeliveryProjectsLocationsFleetPackagesRolloutsGetRequestr   Get)r    r2   r3   r4   rolloutfully_qualified_pathdescribe_reqs          r   DescribeRolloutsClient.Describe@   s\     'wi{8*OTaSbblmtluv==__! ` L ==\**r   c                     SU SU SU SU 3nU R                   R                  UU R                   R                  US9S9n[        R                  " U R
                  U R                  R                  U5      SU 35        g)	a@  Abort an in-progress Rollout.

Args:
  project: GCP project ID.
  location: GCP location of Fleet Package.
  fleet_package: Name of parent Fleet Package.
  rollout: Name of Rollout.
  reason: Reason for aborting the Rollout.

Returns:
  None.

Raises:
  apitools.base.py.HttpError: If the request returns an HTTP error.
r%   r&   r'   r:   reason)r   abortRolloutRequestzAborting Rollout N)r   @ConfigdeliveryProjectsLocationsFleetPackagesRolloutsAbortRequestAbortRolloutRequestr   WaitForr   r   Abort)r    r2   r3   r4   r=   rD   r>   	abort_reqs           r   rI   RolloutsClient.AbortR   s      'wi{8*OTaSbblmtluv^^! MM==V=L _ I NNI&
G9%r   c                     SU SU SU SU 3nU R                   R                  UU R                   R                  US9S9n[        R                  " U R
                  U R                  R                  U5      SU 35        g)	a>  Resume a suspended Rollout.

Args:
  project: GCP project ID.
  location: GCP location of Fleet Package.
  fleet_package: Name of parent Fleet Package.
  rollout: Name of Rollout.
  reason: Reason for resuming the Rollout.

Returns:
  None.

Raises:
  apitools.base.py.HttpError: If the request returns an HTTP error.
r%   r&   r'   r:   rC   )r   resumeRolloutRequestzResuming Rollout N)r   AConfigdeliveryProjectsLocationsFleetPackagesRolloutsResumeRequestResumeRolloutRequestr   rH   r   r   Resume)r    r2   r3   r4   r=   rD   r>   
resume_reqs           r   rP   RolloutsClient.Resumem   s      'wi{8*OTaSbblmtluv``!!]]??v?N a J NNZ(
G9%r   c                     SU SU SU SU 3nU R                   R                  UU R                   R                  US9S9n[        R                  " U R
                  U R                  R                  U5      SU 35        g)	aD  Suspend an in-progress Rollout.

Args:
  project: GCP project ID.
  location: GCP location of Fleet Package.
  fleet_package: Name of parent Fleet Package.
  rollout: Name of Rollout.
  reason: Reason for suspending the Rollout.

Returns:
  None.

Raises:
  apitools.base.py.HttpError: If the request returns an HTTP error.
r%   r&   r'   r:   rC   )r   suspendRolloutRequestzSuspending Rollout N)r   BConfigdeliveryProjectsLocationsFleetPackagesRolloutsSuspendRequestSuspendRolloutRequestr   rH   r   r   Suspend)r    r2   r3   r4   r=   rD   r>   suspend_reqs           r   rW   RolloutsClient.Suspend   s      'wi{8*OTaSbblmtluv--bb!"mmAA B 
 c K NNk*
gY'r   )r   r   r   r   r   )NN)Nd   r   )__name__
__module____qualname____firstlineno____doc__r"   r7   r@   rI   rP   rW   __static_attributes__ r   r   r   r      s#    D6+$66r   r   N)
r_   apitools.base.pyr   /googlecloudsdk.api_lib.container.fleet.packagesr   googlecloudsdk.api_lib.utilr   ROLLOUT_COLLECTIONobjectr   ra   r   r   <module>rg      s'    3 ' @ .O KV Kr   