
                             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	KJr  SS
KJr  SSKJr  SSKrSrSrSrSrSr\S-   rS rS rS rS rS rS rS rS r " S S\5      r S r!S r"S r#g) z0Create hooks for Cloud Media Asset's asset type.    )absolute_import)division)unicode_literals)encoding)apis)waiter)base)
exceptions)
properties)	resourcesN
mediaassetz(mediaasset.projects.locations.operationszprojects/{}/locations/{}z&projects/{}/locations/{}/assetTypes/{}z0projects/{}/locations/{}/assetTypes/{}/assets/{}z/annotationSets/{}c                 8    [         R                  " [        U 5      $ N)r   GetMessagesModuleMEDIA_ASSET_APIapi_versions    3lib/googlecloudsdk/command_lib/media/asset/utils.pyGetApiMessager   &       				==    c                 8    [         R                  " [        U 5      $ r   )r   GetClientInstancer   r   s    r   	GetClientr   *   r   r   c                  d    [         R                  R                  R                  R	                  SS9$ NT)required)r   VALUEScoreprojectGet r   r   
GetProjectr#   .   s(    						'	'	+	+T	+	::r   c                     U R                   =(       d1    [        R                  R                  R                   R	                  SS9$ r   )locationr   r   media_assetr!   )argss    r   GetLocationr(   2   s;    	 
*++77@@DD E  r   c                 ,    [         R                  X5      $ r   )PARENT_TEMPLATEformat)r    r%   s     r   GetParentTemplater,   7   s    				22r   c                 .    [         R                  XU5      $ r   )ASSET_TYPE_PARENT_TEMPLATEr+   )r    r%   
asset_types      r   GetAssetTypeParentTemplater0   ;   s    	#	*	*7j	IIr   c                 .    [         R                  XX#5      $ r   )ASSET_PARENT_TEMPLATEr+   )r    r%   r/   assets       r   GetAssetParentTemplater4   ?   s    		%	%g	KKr   c                 0    [         R                  XX#U5      $ r   )ANNOTATION_PARENT_TEMPLATEr+   )r    r%   r/   r3   annotation_sets        r   GetAnnotationParentTemplater8   C   s    	#	*	*7j+9
; ;r   c                       \ rS rSrSrSrg)UnsupportedReleaseTrackErrorI   z<Raised when calling an api with a unsupported release track.r"   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r"   r   r   r:   r:   I   s    Dr   r:   c                    U R                   R                  5       nU[        R                  R                  :X  a  gU[        R                  R                  :X  a  gU[        R                  R
                  :X  a  g[        U5      e)zReturn API version based on args.

Update this whenever there is a new version.

Args:
  args: The argparse namespace.

Returns:
  API version (e.g. v1alpha or v1beta).

Raises:
  UnsupportedReleaseTrackError: If invalid release track from args.
v1alphav1betav1)calliope_commandReleaseTrackr	   ALPHABETAGAr:   )r'   release_tracks     r   GetApiVersionFromArgsrL   M   sh     ''446-d''---d'',,,d''***$]33r   c                 2   [         R                  " U 5      n/ nU HG  u  p4SR                  S U 5       5      nU H$  nUR                  SR	                  UU5      5        M&     MI     U(       a+  S/U-   n[
        R                  " SR                  U5      5      eg)z0Validate all parsed message from file are valid..c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   )six	text_type).0es     r   	<genexpr>,ValidateMediaAssetMessage.<locals>.<genexpr>k   s     !M<Lq#--"2"2<Ls   #%z{}.{}z6Invalid schema, the following fields are unrecognized:
N)r   UnrecognizedFieldIterjoinappendr+   r
   Error)messageerrorsunrecognized_field_pathsedges_to_messagefield_namesmessage_field_path
field_nameerror_msg_liness           r   ValidateMediaAssetMessagerc   f   s    ))'2&'-#!M<L!MM!
%%gnn5G5?'A B " (.
 @ !O 

499_5
66	 r   c                    [         R                  R                  U R                  [        S9n[
        R                  " [
        R                  " [        U5      R                  5      USR                  UR                  5       5      5      $ )z Wait for an operation to finish.)
collectionzWaiting for [{0}] to finish)r   REGISTRYParseRelativeNamenameOPERATIONS_COLLECTIONr   WaitForCloudOperationPollerNoResourcesr   projects_locations_operationsr+   Name)responser   operation_refs      r   WaitForOperationrp   v   sq    $$66mm 5 7 7-	,,
K
 
>
>@AN#**=+=+=+?@
B Br   )$r@   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper	   googlecloudsdk.corer
   r   r   rP   r   ri   r*   r.   r2   r6   r   r   r#   r(   r,   r0   r4   r8   	Exceptionr:   rL   rc   rp   r"   r   r   <module>rw      s    7 &  ' % , . ( * * ) 
B ,E J 25II >>;
3JL;E9 E427 Br   