
                             S r SSKJr  SSKJr  SSKJr  SSKrSSKrSSKJr  SSK	J
r
  SSKJr  SSKrS	 r " S
 S\R                  " \R                   \5      5      r " S S\5      r " S S\5      rg)z,Common helper methods for Genomics commands.    )absolute_import)division)unicode_literalsN)genomics_util)waiter)	resourcesc                     Sn[         R                  " SU R                  S5      S   5      (       a  [        5       nO
[	        5       nXR                  U 5      4$ )zCreates a client and resource reference for a name.

Args:
  name: An operation name, optionally including projects/, operations/, and a
      project name.

Returns:
  A tuple containing the genomics client and resource reference.
Nz[a-zA-Z]/)researchsplitGenomicsV1ApiClientGenomicsV2ApiClientResourceFromName)nameclients     6lib/googlecloudsdk/api_lib/genomics/genomics_client.pyCreateFromNamer      sK     &YYz4::c?2.// "F "F	((.	..    c                       \ rS rSrSrS r\R                  S 5       r\R                  S 5       r	\R                  S 5       r
\R                  S 5       rSrg	)
GenomicsApiClient2   z9Base class for clients for accessing the genomics API.
  c                     [         R                  " U5      U l        [         R                  " U5      U l        [
        R                  R                  5       U l        U R                  R                  SU5        g )Ngenomics)
r   GetGenomicsMessages	_messagesGetGenomicsClient_clientr   REGISTRYClone	_registryRegisterApiByName)selfversions     r   __init__GenomicsApiClient.__init__6   sP    "66w?DN 227;DL''--/DNNN$$Z9r   c                     [        5       eNNotImplementedErrorr$   r   s     r   r   "GenomicsApiClient.ResourceFromName<       

r   c                     [        5       er)   r*   r$   s    r   PollerGenomicsApiClient.Poller@   r.   r   c                     [        5       er)   r*   r$   resources     r   GetOperationGenomicsApiClient.GetOperationD   r.   r   c                     [        5       er)   r*   r4   s     r   CancelOperation!GenomicsApiClient.CancelOperationH   r.   r   )r   r   r"   N)__name__
__module____qualname____firstlineno____doc__r&   abcabstractmethodr   r1   r6   r9   __static_attributes__ r   r   r   r   2   st    :                r   r   c                   D   ^  \ rS rSrSrU 4S jrS rS rS rS r	Sr
U =r$ )	r   M   z,Client for accessing the V1 genomics API.
  c                 ,   > [         [        U ]  S5        g )Nv1)superr   r&   r$   	__class__s    r   r&   GenomicsV1ApiClient.__init__Q   s    	
t-d3r   c                 6    U R                   R                  USS9$ )Nzgenomics.operations)
collection)r"   Parser,   s     r   r   $GenomicsV1ApiClient.ResourceFromNameT   s    >>1FGGr   c                 V    [         R                  " U R                  R                  5      $ r)   )r   CloudOperationPollerNoResourcesr   
operationsr0   s    r   r1   GenomicsV1ApiClient.PollerW   s    11$,,2I2IJJr   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ N)r   )r   rR   Getr   GenomicsOperationsGetRequestRelativeNamer4   s     r   r6    GenomicsV1ApiClient.GetOperationZ   sB    <<""&&33&&( 	4 	*+ +r   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ rU   )r   rR   Cancelr   GenomicsOperationsCancelRequestrX   r4   s     r   r9   #GenomicsV1ApiClient.CancelOperation_   sB    <<""))66&&( 	7 	*+ +r   rC   r;   r<   r=   r>   r?   r&   r   r1   r6   r9   rB   __classcell__rJ   s   @r   r   r   M   s(    4HK+
+ +r   r   c                   D   ^  \ rS rSrSrU 4S jrS rS rS rS r	Sr
U =r$ )	r   e   z,Client for accessing the V2 genomics API.
  c                 ,   > [         [        U ]  S5        g )Nv2alpha1)rH   r   r&   rI   s    r   r&   GenomicsV2ApiClient.__init__i   s    	
t-j9r   c                 b    U R                   R                  USS[        R                  " 5       0S9$ )Nzgenomics.projects.operations
projectsId)rM   params)r"   rN   r   GetProjectIdr,   s     r   r   $GenomicsV2ApiClient.ResourceFromNamel   s5    >>7m88:;   = =r   c                 V    [         R                  " U R                  R                  5      $ r)   )r   rQ   r   projects_operationsr0   s    r   r1   GenomicsV2ApiClient.Pollerq   s"    11((* *r   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ rU   )r   rl   rV   r   $GenomicsProjectsOperationsGetRequestrX   r4   s     r   r6    GenomicsV2ApiClient.GetOperationu   sB    <<++//;;&&( 	< 	*+ +r   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ rU   )r   rl   r[   r   'GenomicsProjectsOperationsCancelRequestrX   r4   s     r   r9   #GenomicsV2ApiClient.CancelOperationz   sB    <<++22>>&&( 	? 	*+ +r   rC   r^   r`   s   @r   r   r   e   s&    :=
*+
+ +r   r   )r?   
__future__r   r   r   r@   r   googlecloudsdk.api_lib.genomicsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer   sixr   with_metaclassABCMetaobjectr   r   r   rC   r   r   <module>r|      sa     3 &  ' 
 	 9 . ) 
/( **3;;?  6++ +0++ +r   