
                         P   S r SSKJr  SSKJr  SSKJ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.    )absolute_import)division)unicode_literalsN)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)OptimizationStrategy0   
AUTODETECTDISABLEDr   N)r    r!   r"   r#   r(   r)   r$   r   r   r   r&   r&   0   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)
JobsClient5   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__8   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   ParseCreateArgsr0   r3   LabelsValue	input_uri
output_uritemplate_idr=   r   ModeValueValuesEnumbatch_mode_priorityr?   OptimizationValueValuesEnumr
   
GetContentfilejsonr   JsonToMessager4   r9   r:   r<   r>   ,TranscoderProjectsLocationsJobsCreateRequestRelativeNamer2   Create)r5   
parent_refargsr<   rD   rE   rF   r=   msgrH   r?   job_jsonrA   reqs                 r   rP   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)r0   ,TranscoderProjectsLocationsJobsDeleteRequestrO   r2   Deleter5   job_refrU   s      r   r[   JobsClient.Deletet   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.
rX   )r0   )TranscoderProjectsLocationsJobsGetRequestrO   r2   Getr\   s      r   ra   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jobsrd   )servicerequest
batch_sizefieldbatch_size_attribute)r0   *TranscoderProjectsLocationsJobsListRequestrO   r   YieldFromListr2   )r5   rQ   	page_sizerU   resps        r   ListJobsClient.List   sX     ,,
A
A&&(9 B C ##'D Kr   )r4   r2   r.   r0   )d   )r    r!   r"   r#   __doc__r	   ReleaseTrackGAr6   rP   r[   ra   ro   r$   r   r   r   r+   r+   5   s0    5#'#4#4#7#7 64%l%"r   r+   )rr   
__future__r   r   r   enumapitools.base.pyr   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   %googlecloudsdk.command_lib.transcoderr
   $googlecloudsdk.command_lib.util.argsr   rs   rt   r   r   r   Enumr   r&   objectr+   r   r   r   <module>r~      s    ) &  '  % ' , ( 6 <  ##T* &*%6%6%9%9 ;
4
2TYY 2
499 
s sr   