
                          r    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SK	J
r
  SSK	Jr   " S	 S
\5      rg)zEUtilities for dealing with AI Platform deployment resource pools API.    )absolute_import)division)unicode_literals)
list_pager)apis)	constants)flagsc                   X    \ rS rSrSrSS jr          SS jrS rS rS r	S	 r
S
rg)DeploymentResourcePoolsClient   zHHigh-level client for the AI Platform deployment resource pools surface.Nc                     U=(       d6    [         R                  " [        R                  [        R                  U   5      U l        U=(       d    U R
                  R                  U l        g )N)r   GetClientInstancer   AI_PLATFORM_API_NAMEAI_PLATFORM_API_VERSIONclientMESSAGES_MODULEmessages)selfr   r   versions       Alib/googlecloudsdk/api_lib/ai/deployment_resource_pools/client.py__init__&DeploymentResourcePoolsClient.__init__   sJ     D22&&))'2DK ; ; ;DM    c                    U R                   R                  5       nUb  X}l        Ub  Xl        U	b  Xl        [
        R                  " U[        R                  5      nUb"  UR                  Ul	        UR                  Ul
        U
b*  [
        R                  " U
[        R                  5      Ul        U R                   R                  XS9nU=(       d    SUl        Ub  Xol        Ub  Xl        Ubf  / n[#        UR%                  5       5       H@  u  nnUR'                  U R                   R)                  [        R*                  U   US95        MB     UUl        U R                   R/                  US9nU R                   R1                  UUS9nU R                   R3                  UR5                  5       US9nU R6                  R8                  R;                  U5      nU$ )a  Creates a new deployment resource pool using v1beta1 API.

Args:
  location_ref: Resource, the parsed location to create a deployment
    resource pool.
  deployment_resource_pool_id: str, The ID to use for the
    DeploymentResourcePool, which will become the final component of the
    DeploymentResourcePool's resource name.
  autoscaling_metric_specs: dict or None, the metric specification that
    defines the target resource utilization for calculating the desired
    replica count.
  accelerator_dict: dict or None, the accelerator attached to the deployment
    resource pool from args.
  min_replica_count: int or None, The minimum number of machine replicas
    this deployment resource pool will be always deployed on. This value
    must be greater than or equal to 1.
  max_replica_count: int or None, The maximum number of replicas this
    deployment resource pool may be deployed on when the traffic against it
    increases.
  machine_type: str or None, Immutable. The type of the machine.
  tpu_topology: str or None, the topology of the TPU to serve the model.
  multihost_gpu_node_count: int or None, the number of nodes per replica for
    multihost GPU deployments.
  reservation_affinity: dict or None, the reservation affinity of the
    deployed model which specifies which reservations the deployed model can
    use.
  spot: bool, whether or not deploy the model on spot resources.
  required_replica_count: int or None, The required number of replicas this
    deployment resource pool will be considered successfully deployed. This
    value must be greater than or equal to 1 and less than or equal to
    min_replica_count.

Returns:
  A long-running operation for Create.
)machineSpecspot   )
metricNametarget)dedicatedResources)deploymentResourcePooldeploymentResourcePoolId)parent?googleCloudAiplatformV1beta1CreateDeploymentResourcePoolRequest)r   'GoogleCloudAiplatformV1beta1MachineSpecmachineTypetpuTopologymultihostGpuNodeCountr	   ParseAcceleratorFlagr   BETA_VERSIONacceleratorTypeacceleratorCountParseReservationAffinityFlagreservationAffinity.GoogleCloudAiplatformV1beta1DedicatedResourcesminReplicaCountmaxReplicaCountrequiredReplicaCountsorteditemsappend1GoogleCloudAiplatformV1beta1AutoscalingMetricSpec!OP_AUTOSCALING_METRIC_NAME_MAPPERautoscalingMetricSpecs2GoogleCloudAiplatformV1beta1DeploymentResourcePool?GoogleCloudAiplatformV1beta1CreateDeploymentResourcePoolRequest?AiplatformProjectsLocationsDeploymentResourcePoolsCreateRequestRelativeNamer   *projects_locations_deploymentResourcePoolsCreate)r   location_refdeployment_resource_pool_idautoscaling_metric_specsaccelerator_dictmin_replica_countmax_replica_countmachine_typetpu_topologymultihost_gpu_node_countreservation_affinityr   required_replica_countmachine_specaccelerator	dedicatedautoscaling_metric_specs_listnamer   poolpool_requestreq	operations                          r   
CreateBeta(DeploymentResourcePoolsClient.CreateBeta%   s   f ==HHJL!-!-++C(,,)00K %0%@%@l"&1&B&Bl#').)K)K
	 6 6*l& LL  M I !2 6QI$"3)'=$+&(# !9!?!?!AB,$%,,MMKK$FFtL L 	
 C *Gi&==KK$ L D ==``#!< a L
 --
W
W((*HT X C
 FFMMI r   c                     U R                   R                  UR                  5       S9nU R                  R                  R                  U5      nU$ )zDeletes a deployment resource pool using v1beta1 API.

Args:
  deployment_resource_pool_ref: str, The deployment resource pool to delete.

Returns:
  A GoogleProtobufEmpty response message for delete.
rN   )r   ?AiplatformProjectsLocationsDeploymentResourcePoolsDeleteRequestr<   r   r=   Delete)r   deployment_resource_pool_refrQ   rR   s       r   
DeleteBeta(DeploymentResourcePoolsClient.DeleteBeta   sQ     --
W
W)668 X C FFMMI r   c                     U R                   R                  UR                  5       S9nU R                  R                  R                  U5      nU$ )zDescribes a deployment resource pool using v1beta1 API.

Args:
  deployment_resource_pool_ref: str, Deployment resource pool to describe.

Returns:
  GoogleCloudAiplatformV1beta1DeploymentResourcePool response message.
rV   )r   <AiplatformProjectsLocationsDeploymentResourcePoolsGetRequestr<   r   r=   Getr   rY   rQ   responses       r   DescribeBeta*DeploymentResourcePoolsClient.DescribeBeta   sK     --
T
T)668 U C {{EEII#NHOr   c                     U R                   R                  UR                  5       S9n[        R                  " U R
                  R                  USSS9$ )zLists deployment resource pools using v1beta1 API.

Args:
  location_ref: Resource, the parsed location to list deployment resource
    pools.

Returns:
  Nested attribute containing list of deployment resource pools.
)r#   deploymentResourcePoolspageSize)fieldbatch_size_attribute)r   =AiplatformProjectsLocationsDeploymentResourcePoolsListRequestr<   r   YieldFromListr   r=   )r   r?   rQ   s      r   ListBeta&DeploymentResourcePoolsClient.ListBeta   sU     --
U
U((* V C ##>>''	 r   c                     U R                   R                  UR                  5       S9nU R                  R                  R                  U5      nU$ )zQueries deployed models sharing a specified deployment resource pool using v1beta1 API.

Args:
  deployment_resource_pool_ref: str, Deployment resource pool to query.

Returns:
  GoogleCloudAiplatformV1beta1QueryDeployedModelsResponse message.
)r!   )r   LAiplatformProjectsLocationsDeploymentResourcePoolsQueryDeployedModelsRequestr<   r   r=   QueryDeployedModelsr_   s       r   QueryDeployedModelsBeta5DeploymentResourcePoolsClient.QueryDeployedModelsBeta   sP     --
d
d;HHJ e C {{EEYYH Or   )r   r   )NNN)
NNNNNNNNFN)__name__
__module____qualname____firstlineno____doc__r   rS   rZ   ra   rj   ro   __static_attributes__ r   r   r   r      sE    P<  $#!l\("*r   r   N)ru   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.command_lib.air   r	   objectr   rw   r   r   <module>r}      s.    L &  ' ' , 3 /CF Cr   