
                         R    d Z ddlmZ ddlmZ ddlmZ dZd Zd Z	 G d d	e
      Zy
)z1Utilities for Package Rollouts FleetPackages API.    )
list_pager)util)waiterz/configdelivery.projects.locations.fleetPackagesc                     d|  d| S )N	projects//locations/ )projectlocations     Elib/googlecloudsdk/api_lib/container/fleet/packages/fleet_packages.py_ParentPathr      s    WI[
	33    c                     d|  d| d| S )Nr   r   z/fleetPackages/r	   )r
   r   names      r   _FullyQualifiedPathr      s    WI[
/$	HHr   c                   <    e Zd ZdZd	dZd
dZd ZddZd ZddZ	y)FleetPackagesClientzAClient for FleetPackages in Config Delivery Package Rollouts API.Nc                 n   |xs t         j                  | _        |xs t        j                  | j                        | _        |xs t        j
                  | j                        | _        | j                  j                  | _        t        j                  | j                  j                  d       | _        y )Nc                     | j                   S Nr   )xs    r   <lambda>z.FleetPackagesClient.__init__.<locals>.<lambda>*   s    r   )operation_serviceget_name_func)r   DEFAULT_API_VERSION_api_versionGetClientInstanceclientGetMessagesModulemessages projects_locations_fleetPackages_servicer   CloudOperationPollerNoResourcesprojects_locations_operationsfleet_package_waiter)selfapi_versionr   r!   s       r   __init__zFleetPackagesClient.__init__#   s    #?t'?'?DED2243D3DEDKC 6 6t{{ CDMKK@@DM & F F++CC&!Dr   c                     | j                   j                  t        ||            }t        j                  | j
                  |d||d      S )a  List FleetPackages from Package Rollouts API.

    Args:
      project: GCP project id.
      location: Valid GCP location (e.g. us-central1).
      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.
    )parentfleetPackagespageSize)field
batch_sizelimitbatch_size_attribute)r!   7ConfigdeliveryProjectsLocationsFleetPackagesListRequestr   r   YieldFromListr#   )r'   r
   r   r0   	page_sizelist_requests         r   ListzFleetPackagesClient.List-   sV     	MMw1 	N 	
 
 ##' r   c                     | j                   j                  |||      }t        j                  | j                  | j
                  j                  |      d|       S )zCreate FleetPackage for Package Rollouts API.

    Args:
      fleet_package: A parsed FleetPackage resource
      fleet_package_id: Name of FleetPackage
      parent: Parent GCP location

    Returns:
      Created FleetPackage resource.
    )fleetPackagefleetPackageIdr+   zCreating FleetPackage )r!   9ConfigdeliveryProjectsLocationsFleetPackagesCreateRequestr   WaitForr&   r#   Create)r'   fleet_packagefleet_package_idr+   create_requests        r   r<   zFleetPackagesClient.CreateH   sd     	OO&+ 	P 	
  >>!!^,
 !1 23 r   c                     t        |||      }| j                  j                  ||      }t        j                  | j
                  | j                  j                  |      d|       S )a!  Delete a FleetPackage resource.

    Args:
      project: GCP project id.
      location: Valid GCP location (e.g., us-central1).
      name: Name of the FleetPackage.
      force: Whether to delete release of FleetPackage's ResourceBundle.

    Returns:
      Empty Response Message.
    )r   forcezDeleting FleetPackage )r   r!   9ConfigdeliveryProjectsLocationsFleetPackagesDeleteRequestr   r;   r&   r#   Delete)r'   r
   r   r   rA   fully_qualified_path
delete_reqs          r   rC   zFleetPackagesClient.Delete`   so     /w$GOO%U 	P 	
 
 >>!!Z(
 !5 67 r   c                     t        |||      }| j                  j                  |      }| j                  j	                  |      S )zDescribe a FleetPackage resource.

    Args:
      project: GCP project id.
      location: Valid GCP location (e.g., us-central1).
      name: Name of the FleetPackage.

    Returns:
      Empty Response Message.
    r   )r   r!   6ConfigdeliveryProjectsLocationsFleetPackagesGetRequestr#   Get)r'   r
   r   r   rD   describe_reqs         r   DescribezFleetPackagesClient.Describex   sJ     /w$GLL% 	M 	
 
 ==\**r   c                     | j                   j                  |||      }t        j                  | j                  | j
                  j                  |      d|       S )a  Create FleetPackage for Package Rollouts API.

    Args:
      fleet_package: A parsed FleetPackage resource
      name: Fully qualified name of the FleetPackage.
      update_mask: Field mask for the update.

    Returns:
      Updated FleetPackage resource.
    )r8   r   
updateMaskzUpdating FleetPackage )r!   8ConfigdeliveryProjectsLocationsFleetPackagesPatchRequestr   r;   r&   r#   Patch)r'   r=   r   update_maskupdate_requests        r   UpdatezFleetPackagesClient.Update   s`     	NN&Tk 	O 	
 
 >>!!N+
 ' r   )NN)Nd   )Fr   )
__name__
__module____qualname____doc__r)   r6   r<   rC   rJ   rQ   r	   r   r   r   r       s#    I600+&r   r   N)rV   apitools.base.pyr   /googlecloudsdk.api_lib.container.fleet.packagesr   googlecloudsdk.api_lib.utilr   FLEET_PACKAGE_COLLECTIONr   r   objectr   r	   r   r   <module>r\      s2    8 ' @ .L 4I& r   