
    c                         S 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.    N)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	)
GenomicsApiClient/   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__3   sP    "66w?DN 227;DL''--/DNNN$$Z9r   c                     [        5       eNNotImplementedErrorr!   r   s     r   r   "GenomicsApiClient.ResourceFromName9       

r   c                     [        5       er&   r'   r!   s    r   PollerGenomicsApiClient.Poller=   r+   r   c                     [        5       er&   r'   r!   resources     r   GetOperationGenomicsApiClient.GetOperationA   r+   r   c                     [        5       er&   r'   r1   s     r   CancelOperation!GenomicsApiClient.CancelOperationE   r+   r   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__r#   abcabstractmethodr   r.   r3   r6   __static_attributes__ r   r   r   r   /   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   J   z,Client for accessing the V1 genomics API.
  c                 ,   > [         [        U ]  S5        g )Nv1)superr   r#   r!   	__class__s    r   r#   GenomicsV1ApiClient.__init__N   s    	
t-d3r   c                 6    U R                   R                  USS9$ )Nzgenomics.operations)
collection)r   Parser)   s     r   r   $GenomicsV1ApiClient.ResourceFromNameQ   s    >>1FGGr   c                 V    [         R                  " U R                  R                  5      $ r&   )r   CloudOperationPollerNoResourcesr   
operationsr-   s    r   r.   GenomicsV1ApiClient.PollerT   s    11$,,2I2IJJr   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ N)r   )r   rO   Getr   GenomicsOperationsGetRequestRelativeNamer1   s     r   r3    GenomicsV1ApiClient.GetOperationW   sB    <<""&&33&&( 	4 	*+ +r   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ rR   )r   rO   Cancelr   GenomicsOperationsCancelRequestrU   r1   s     r   r6   #GenomicsV1ApiClient.CancelOperation\   sB    <<""))66&&( 	7 	*+ +r   r@   r8   r9   r:   r;   r<   r#   r   r.   r3   r6   r?   __classcell__rG   s   @r   r   r   J   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   b   z,Client for accessing the V2 genomics API.
  c                 ,   > [         [        U ]  S5        g )Nv2alpha1)rE   r   r#   rF   s    r   r#   GenomicsV2ApiClient.__init__f   s    	
t-j9r   c                 b    U R                   R                  USS[        R                  " 5       0S9$ )Nzgenomics.projects.operations
projectsId)rJ   params)r   rK   r   GetProjectIdr)   s     r   r   $GenomicsV2ApiClient.ResourceFromNamei   s5    >>7m88:;   = =r   c                 V    [         R                  " U R                  R                  5      $ r&   )r   rN   r   projects_operationsr-   s    r   r.   GenomicsV2ApiClient.Pollern   s"    11((* *r   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ rR   )r   ri   rS   r   $GenomicsProjectsOperationsGetRequestrU   r1   s     r   r3    GenomicsV2ApiClient.GetOperationr   sB    <<++//;;&&( 	< 	*+ +r   c                     U R                   R                  R                  U R                  R	                  UR                  5       S95      $ rR   )r   ri   rX   r   'GenomicsProjectsOperationsCancelRequestrU   r1   s     r   r6   #GenomicsV2ApiClient.CancelOperationw   sB    <<++22>>&&( 	? 	*+ +r   r@   r[   r]   s   @r   r   r   b   s&    :=
*+
+ +r   r   )r<   r=   r	   googlecloudsdk.api_lib.genomicsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer   sixr   with_metaclassABCMetaobjectr   r   r   r@   r   r   <module>rx      sZ     3  	 9 . ) 
/( **3;;?  6++ +0++ +r   