
    P                     |    d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlm	Z	 ddl
mZ dd	lmZ d
 Zd Zd Zd Zy)z0Create hooks for Cloud Media Asset's asset type.    )absolute_import)division)unicode_literalsN)encoding)apis)utils)	resourcesc                     ~ t        j                         }t        j                  |      }t        j                  |||j                        |_        |S )zQPython hook for yaml commands to wildcard the parent parameter in asset requests.)r   
GetProjectGetLocationGetAssetTypeParentTemplate
asset_typeparent)refargsreqprojectlocations        :lib/googlecloudsdk/command_lib/media/asset/assets/hooks.pyAddParentInfoToAssetRequestsr      sF    	't$(//04A#*	*    c                    ~ t        j                  dd      }|j                  d      r[t        j                  |j
                        }t        j                  ||j                        }t        j                  |       ||_        |j                  d      rCt        j                  |j                  |j                  j                        |j                  _        |S )z1Prepare the asset for create and update requests.
mediaassetv1alphaasset_config_filelabels)r   GetMessagesModuleIsKnownAndSpecifiedjsonloadsr   r   DictToMessageAssetr   ValidateMediaAssetMessageassetr   LabelsValue)r   r   r   messages
asset_datar$   s         r   ParseAssetConfigFiler(   '   s    	##L)<(	12D223J"":x~~>E	##E*CI	h'--dkk.6nn.H.HJCII	*r   c                 ^    t        j                  |       j                  j                  |      S )zGet the modified resource.

  Args:
    api_version: the request's release track.
    request_message: request message type in the python client.

  Returns:
    The modified resource.
  )r   	GetClient$projects_locations_assetTypes_assetsGet)api_versionrequest_messages     r   GetExistingResourcer/   6   s)     
	%	J	J	N	N
 r   c                    t        j                  |      }t        j                  | |       t        j                         }t        j                  |      }t
        j                  j                  d|||j                  |j                        }d|j                  v r| S t        j                  |      j                  |j                               }t        ||      S )z6Wait for operations to finish and return the resource.z/mediaasset.projects.locations.assetTypes.assets)
projectsIdlocationsIdassetTypesIdassetsIddelete)name)r   GetApiVersionFromArgsWaitForOperationr   r   r	   REGISTRYCreater   r$   command_pathGetApiMessage5MediaassetProjectsLocationsAssetTypesAssetsGetRequestRelativeNamer/   )responser   r-   r   r   resource_refr.   s          r   ProcessOutputrA   D   s    ++D1+;/'t$(##**7??zz + , """O''HH((* I ,  
[/	::r   )__doc__
__future__r   r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   &googlecloudsdk.command_lib.media.assetr   googlecloudsdk.corer	   r   r(   r/   rA    r   r   <module>rI      s6    7 &  '  % , 8 );r   