
                         ,   S r SSK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  \R                  R                  S	0r\R                  R                  4S
 jrS r " S S\R$                  5      r " S S\R$                  5      r " S S\5      rg)z"Utilities for Transcoder API Jobs.    N)encoding)
list_pager)apis)base)util)labels_utilv1c                 Z    [         R                  U 5      n[        R                  " SU5      $ )N
transcoder)VERSION_MAPgetr   GetClientInstance)release_trackapi_versions     -lib/googlecloudsdk/api_lib/transcoder/jobs.py_GetClientInstancer      s#    .+			k	::    c                  0    [         R                  " SS5      $ )z1Get a resource reference to the transcoder proto.r   r	   )r   GetMessagesModule r   r   _GetTranscoderMessagesr   #   s    			d	33r   c                       \ rS rSrSrSrSrg)ProcessingMode(   PROCESSING_MODE_INTERACTIVEPROCESSING_MODE_BATCHr   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r   (   s     =1r   r   c                       \ rS rSrSrSrSrg)OptimizationStrategy-   
AUTODETECTDISABLEDr   N)r   r   r   r    r%   r&   r!   r   r   r   r#   r#   -   s    *(r   r#   c                   j    \ rS rSrSr\R                  R                  S4S jrS r	S r
S rS
S jrS	rg)
JobsClient2   z-Client for job service in the Transcoder API.Nc                     U=(       d    [        U5      U l        U R                  R                  U l        U R                  R                  U l        U R                  R                  R                  U l        g )N)r   clientMESSAGES_MODULEmessageprojects_locations_jobs_serviceJob
_job_class)selfr   r+   s      r   __init__JobsClient.__init__5   sM    =.}=DK;;..DLKK77DMkk1155DOr   c           
         [         R                  " X R                  R                  R                  5      nUR
                  nUR                  nUR                  nSnUR                  b/  [        5       nUR                  R                  UR                  5      nSn	UR                  b  UR                  n	Sn
UR                  b/  [        5       nUR                  R                  UR                  5      n
SnUc+  [        R                  " UR                   UR"                  5      nUc   U R                  R                  UUUUUU	U
S9nO[$        R&                  " U R(                  U5      nU=(       d    UR*                  Ul        U=(       d    UR,                  Ul        U=(       d    UR.                  Ul        U=(       d    UR                  Ul        U
=(       d    UR                  Ul        U	=(       d    UR0                  Ul        U R                  R3                  UR5                  5       US9nU R6                  R9                  U5      $ )zCreate a job.

Args:
  parent_ref: a Resource reference to a transcoder.projects.locations
    resource for the parent of this template.
  args: arguments to create a job.

Returns:
  Job: Job created, including configuration and name.
Nr   )inputUri	outputUri
templateIdlabelsmodebatchModePriorityoptimization)parentjob)r   ParseCreateArgsr-   r0   LabelsValue	input_uri
output_uritemplate_idr:   r   ModeValueValuesEnumbatch_mode_priorityr<   OptimizationValueValuesEnumr   
GetContentfilejsonr   JsonToMessager1   r6   r7   r9   r;   ,TranscoderProjectsLocationsJobsCreateRequestRelativeNamer/   Create)r2   
parent_refargsr9   rA   rB   rC   r:   msgrE   r<   job_jsonr>   reqs                 r   rM   JobsClient.Create;   s    ((||/?/?/K/KLFIJ""KDyy"$cWW((3d+ 44L$"$cWW889J9JKlHDII6hLL /#  c ""4??H=c.#,,cl 1CMMcm'SZZcj!ch%9)9)9c1JS5J5Jc
,,
C
C&&(c D C ==$$r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )zDelete a job.

Args:
  job_ref: a resource reference to a transcoder.projects.locations.jobs
    resource to delete

Returns:
  Empty: An empty response message.
name)r-   ,TranscoderProjectsLocationsJobsDeleteRequestrL   r/   Deleter2   job_refrR   s      r   rX   JobsClient.Deleteq   sA     ,,
C
C!!# D C ==$$r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )zGet a job.

Args:
  job_ref: a resource reference to a transcoder.projects.locations.jobs
    resource to get

Returns:
  Job: if available, return the full job information.
rU   )r-   )TranscoderProjectsLocationsJobsGetRequestrL   r/   GetrY   s      r   r^   JobsClient.Get   sA     ,,
@
@!!# A C ==S!!r   c                     U R                   R                  UR                  5       US9n[        R                  " U R
                  UUSSS9nU$ )a/  List jobs.

Args:
  parent_ref: a Resource reference to a transcoder.projects.locations
    resource to list job for.
  page_size (optional): the number of jobs to fetch in each request (affects
    requests made, but not the yielded results).

Returns:
  Jobs: a list of jobs in the specified location
)r=   pageSizejobsra   )servicerequest
batch_sizefieldbatch_size_attribute)r-   *TranscoderProjectsLocationsJobsListRequestrL   r   YieldFromListr/   )r2   rN   	page_sizerR   resps        r   ListJobsClient.List   sX     ,,
A
A&&(9 B C ##'D Kr   )r1   r/   r+   r-   )d   )r   r   r   r    __doc__r   ReleaseTrackGAr3   rM   rX   r^   rl   r!   r   r   r   r(   r(   2   s0    5#'#4#4#7#7 64%l%"r   r(   )ro   enumapitools.base.pyr   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   %googlecloudsdk.command_lib.transcoderr   $googlecloudsdk.command_lib.util.argsr   rp   rq   r   r   r   Enumr   r#   objectr(   r   r   r   <module>rz      s    )  % ' , ( 6 <  ##T* &*%6%6%9%9 ;
4
2TYY 2
499 
s sr   