
    l                         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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.    )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%   /   s;    	 
*++77@@DD E  r   c                 ,    [         R                  X5      $ r   )PARENT_TEMPLATEformat)r   r"   s     r   GetParentTemplater)   4   s    				22r   c                 .    [         R                  XU5      $ r   )ASSET_TYPE_PARENT_TEMPLATEr(   )r   r"   
asset_types      r   GetAssetTypeParentTemplater-   8   s    	#	*	*7j	IIr   c                 .    [         R                  XX#5      $ r   )ASSET_PARENT_TEMPLATEr(   )r   r"   r,   assets       r   GetAssetParentTemplater1   <   s    		%	%g	KKr   c                 0    [         R                  XX#U5      $ r   )ANNOTATION_PARENT_TEMPLATEr(   )r   r"   r,   r0   annotation_sets        r   GetAnnotationParentTemplater5   @   s    	#	*	*7j+9
; ;r   c                       \ rS rSrSrSrg)UnsupportedReleaseTrackErrorF   z<Raised when calling an api with a unsupported release track.r   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r   r   r   r7   r7   F   s    Dr   r7   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GAr7   )r$   release_tracks     r   GetApiVersionFromArgsrI   J   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>h   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   ValidateMediaAssetMessager`   c   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   WaitForOperationrm   s   sq    $$66mm 5 7 7-	,,
K
 
>
>@AN#**=+=+=+?@
B Br   ) r=   apitools.base.pyr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper   googlecloudsdk.corer   r   r	   rM   r   rf   r'   r+   r/   r3   r   r   r    r%   r)   r-   r1   r5   	Exceptionr7   rI   r`   rm   r   r   r   <module>rs      s    7 & , . ( * * ) 
B ,E J 25II >>;
3JL;E9 E427 Br   