
    I                     ~    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ  G d
 de      Zy)z:Utilities for querying serverless ray jobs in AI Platform.    )absolute_import)division)unicode_literals)
list_pager)apis)	constants)util)
console_ioc                   `    e Zd ZdZej
                  fdZd Zd Z	 	 ddZ	ddZ
d Zd	 Zd
 Zy)ServerlessRayJobsClientz>Client used for interacting with Serverless Ray Jobs endpoint.c                     t        j                  t        j                  t        j                  |         }|j
                  | _        || _        |j                  | _	        t        j                  |   | _        y )N)r   GetClientInstancer   AI_PLATFORM_API_NAMEAI_PLATFORM_API_VERSIONMESSAGES_MODULE	_messages_version$projects_locations_serverlessRayJobs_serviceAI_PLATFORM_MESSAGE_PREFIX_message_prefix)selfversionclients      ;lib/googlecloudsdk/api_lib/ai/serverless_ray_jobs/client.py__init__z ServerlessRayJobsClient.__init__   s]    ##I$B$B$-$E$Eg$NPF++DNDM??DM$??HD    c                 f    t        | j                  dj                  | j                  |      d      S )z&Returns the API message class by name.z{prefix}{name})prefixnameN)getattrr   formatr   )r   message_names     r   
GetMessagez"ServerlessRayJobsClient.GetMessage'   s9     t';';%1 	  	348: :r   c                 $    | j                  d      S )z1Retures the Serverless Ray Jobs resource message.ServerlessRayJob)r$   )r   s    r   ServerlessRayJobMessagez/ServerlessRayJobsClient.ServerlessRayJobMessage/   s     ??-..r   Nc                      | j                         ||      }|r||_        | j                  j                  | j                  j                  ||            S )a  Constructs a request and sends it to the endpoint to create a serverless ray job instance.

    Args:
      parent: str, The project resource path of the serverless ray job to
        create.
      job_spec: The ServerlessRayJobSpec message instance for the job creation
        request.
      display_name: str, The display name of the serverless ray job to create.
      labels: LabelValues, map-like user-defined metadata to organize the
        serverless ray job.

    Returns:
      A ServerlessRayJob message instance created.
    )displayNamejobSpec)parent,googleCloudAiplatformV1beta1ServerlessRayJob)r'   labelsr   Creater   9AiplatformProjectsLocationsServerlessRayJobsCreateRequest)r   r+   job_specdisplay_namer-   serverless_ray_jobs         r   r.   zServerlessRayJobsClient.Create4   sd    & 8557 ( "( ==PP9K 	Q 	
 r   c                 ~    t        j                  | j                  | j                  j	                  |      dd|      S )N)r+   serverlessRayJobspageSize)fieldbatch_size_attributelimit)r   YieldFromListr   r   7AiplatformProjectsLocationsServerlessRayJobsListRequest)r   r8   regions      r   ListzServerlessRayJobsClient.ListW   sB    ##NN 	O 	
 "' r   c                 p    | j                   j                  |      }| j                  j                  |      S N)r    )r   6AiplatformProjectsLocationsServerlessRayJobsGetRequestr   Getr   r    requests      r   r@   zServerlessRayJobsClient.Getb   s9    MM 	N 	
 
 ==W%%r   c                 p    | j                   j                  |      }| j                  j                  |      S r>   )r   9AiplatformProjectsLocationsServerlessRayJobsCancelRequestr   CancelrA   s      r   rE   zServerlessRayJobsClient.Cancelj   s6    nnVV W G ==((r   c                     t        j                  |d      }| j                  |      }t        j                  ||      S )z@Import a messages class instance typed by name from a YAML file.F)binary)message_typestream)r
   ReadFromFileOrStdinr$   export_utilImport)r   	yaml_filer#   datarH   s        r   ImportResourceMessagez-ServerlessRayJobsClient.ImportResourceMessagep   s5    )))EBD??<0L<EEr   )NN)__name__
__module____qualname____doc__r   
GA_VERSIONr   r$   r'   r.   r<   r@   rE   rO    r   r   r   r      sA    F&11 I:/ 	!F	&)Fr   r   N)rS   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.command_lib.air   !googlecloudsdk.command_lib.exportr	   rK   googlecloudsdk.core.consoler
   objectr   rU   r   r   <module>r]      s3    A &  ' ' , 3 A 2XFf XFr   