
    }2                        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d	lmZ  G d
 dej                        Z G d de      Z G d dej"                        Z G d de      Z G d de      Zej(                  dfedfedfdZ G d de
j,                        Z G d dej0                        Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$ej:                        Z G d% d&e      Z G d' d(ej:                        Z  G d) d*e      Z! G d+ d,e      Z" G d- d.ejF                        Z$ G d/ d0e      Z% G d1 d2ejF                        Z& G d3 d4e      Z' G d5 d6ejF                        Z( G d7 d8e      Z) G d9 d:ejF                        Z* G d; d<e      Z+ G d= d>e      Z, G d? d@ejF                        Z- G dA dBe      Z. G dC dDejF                        Z/ G dE dFej:                        Z0 G dG dHe      Z1 G dI dJe      Z2 G dK dLej:                        Z3 G dM dNe      Z4 G dO dPe      Z5 G dQ dRe      Z6 G dS dTe      Z7 G dU dVe      Z8 G dW dXe      Z9y)YzGCompute resource completers for the core.cache.completion_cache module.    )absolute_import)division)unicode_literalsN)
completers)parameter_info_lib)
exceptions)encodingc                       e Zd ZdZy)ErrorzExceptions for this module.N__name__
__module____qualname____doc__     4lib/googlecloudsdk/command_lib/compute/completers.pyr   r      s    #r   r   c                       e Zd ZdZy)TestParametersRequiredz6Test parameters must be exported in _ARGCOMPLETE_TEST.Nr   r   r   r   r   r   #   s    >r   r   c                       e Zd Zd Zy)ResourceParamCompleterc                 l    t        j                  ||| j                  dt        j                  dfi      S )NprojectTupdaters)r   ParameterInfoByConvention
collectionresource_manager_completersProjectCompleterselfparsed_argsarguments      r   ParameterInfoz$ResourceParamCompleter.ParameterInfo,   s8    773DDdK
	 r   Nr   r   r   r$   r   r   r   r   r   *   s    r   r   c                   "     e Zd ZdZ fdZ xZS )RegionsCompleterzThe region completer.c                 6    t        t        | 
  dddddd| y )Nzcompute.regionszcompute regions list --uriregionp  r   list_commandparamtimeoutr   )superr'   __init__r!   kwargs	__class__s     r   r0   zRegionsCompleter.__init__=   s.    	
D* $1	
 r   r   r   r   r   r0   __classcell__r3   s   @r   r'   r'   :   s     r   r'   c                   "     e Zd ZdZ fdZ xZS )ZonesCompleterzThe zone completer.c                 6    t        t        | 
  dddddd| y )Nzcompute.zoneszcompute zones list --urizoner*   r+   r   )r/   r8   r0   r1   s     r   r0   zZonesCompleter.__init__I   s-    	.$( "/	
 r   r4   r6   s   @r   r8   r8   F   s     r   r8   TF)r   r)   r:   c                   $     e Zd Z	 	 d fd	Z xZS )ListCommandParameterInfoc                 ^    |r| j                  |      dv ry t        t        |   ||||      S )N)r)   r:   )parameter_valuecheck_properties
for_update)GetDestr/   r<   GetFlag)r!   parameter_namer>   r?   r@   r3   s        r   rB   z ListCommandParameterInfo.GetFlaga   s@    dll>26HH)48')	 9  r   )NTF)r   r   r   rB   r5   r6   s   @r   r<   r<   _   s    4805	 	r   r<   c                       e Zd Zd Zy)ListCommandCompleterc                 <    t        ||| j                  t              S )Nr   r<   r   COMPLETERS_BY_CONVENTIONr    s      r   r$   z"ListCommandCompleter.ParameterInfoo   s    #)	 r   Nr%   r   r   r   rE   rE   m   s    r   rE   c                       e Zd ZdZd Zy)GlobalListCommandCompleterz)A global resource list command completer.c                 @    t        ||| j                  dgt              S )Nglobal)additional_paramsr   rG   r    s      r   r$   z(GlobalListCommandCompleter.ParameterInfo{   s$    ##*) r   N)r   r   r   r   r$   r   r   r   rJ   rJ   x   s
    1r   rJ   c                        e Zd Z fdZ xZS )DisksCompleterc                 2    t        t        | 
  dddd| y )Nzcompute.diskszcompute disks list --urir   r,   r   )r/   rO   r0   r1   s     r   r0   zDisksCompleter.__init__   s'    	.$( "/ r   r   r   r   r0   r5   r6   s   @r   rO   rO           r   rO   c                        e Zd Z fdZ xZS )DiskTypesRegionalCompleterc                 4    t        t        | 
  ddddd| y )Nzcompute.regionDiskTypesalphaz4alpha compute disk-types list --uri --filter=-zone:*r   api_versionr,   r   )r/   rU   r0   r1   s     r   r0   z#DiskTypesRegionalCompleter.__init__   s+    	
$d4 ,K 	r   rR   r6   s   @r   rU   rU           r   rU   c                        e Zd Z fdZ xZS )DiskTypesZonalCompleterc                 4    t        t        | 
  ddddd| y )Nzcompute.diskTypesrW   z3alpha compute disk-types list --uri --filter=zone:*rX   r   )r/   r\   r0   r1   s     r   r0   z DiskTypesZonalCompleter.__init__   s+    	
!41 &J 	r   rR   r6   s   @r   r\   r\      rZ   r   r\   c                        e Zd Z fdZ xZS )DiskTypesCompleterc                 D    t        t        | 
  ddt        t        gi| y Nr   r   )r/   r_   r0   rU   r\   r1   s     r   r0   zDiskTypesCompleter.__init__   s)    	
d, .0GH
r   rR   r6   s   @r   r_   r_           r   r_   c                        e Zd Z fdZ xZS )HealthChecksCompleterc                 2    t        t        | 
  dddd| y )Ncompute.healthChecksz compute health-checks list --urirQ   r   )r/   rd   r0   r1   s     r   r0   zHealthChecksCompleter.__init__   (    	
/ )7 r   rR   r6   s   @r   rd   rd      rS   r   rd   c                        e Zd Z fdZ xZS )HealthChecksCompleterAlphac                 D    t        t        | 
  ddt        t        gi| y ra   )r/   ri   r0   GlobalHealthChecksCompleterRegionHealthChecksCompleterr1   s     r   r0   z#HealthChecksCompleterAlpha.__init__   s)    	
$d4 /1LM
r   rR   r6   s   @r   ri   ri      rb   r   ri   c                        e Zd Z fdZ xZS )rk   c                 4    t        t        | 
  ddddd| y )Nrf   rW   z/alpha compute health-checks list --global --urirX   r   )r/   rk   r0   r1   s     r   r0   z$GlobalHealthChecksCompleter.__init__   s+    	
%t5 )F 	r   rR   r6   s   @r   rk   rk      rZ   r   rk   c                        e Zd Z fdZ xZS )rl   c                 4    t        t        | 
  ddddd| y )Nzcompute.regionHealthChecksrW   z8alpha compute health-checks list --filter=region:* --urirX   r   )r/   rl   r0   r1   s     r   r0   z$RegionHealthChecksCompleter.__init__   s+    	
%t5 /O 	r   rR   r6   s   @r   rl   rl      rZ   r   rl   c                        e Zd Z fdZ xZS )SearchHealthChecksCompleterc                 0    t        t        | 
  dddi| y )Nr   rf   r   )r/   rr   r0   r1   s     r   r0   z$SearchHealthChecksCompleter.__init__   s#    	
%t5 )
r   rR   r6   s   @r   rr   rr      rb   r   rr   c                        e Zd Z fdZ xZS )HttpHealthChecksCompleterc                 2    t        t        | 
  dddd| y )Ncompute.httpHealthChecksz%compute http-health-checks list --urirQ   r   )r/   ru   r0   r1   s     r   r0   z"HttpHealthChecksCompleter.__init__   s(    	
#T3 -< r   rR   r6   s   @r   ru   ru      rS   r   ru   c                        e Zd Z fdZ xZS )SearchHttpHealthChecksCompleterc                 0    t        t        | 
  dddi| y )Nr   rw   r   )r/   ry   r0   r1   s     r   r0   z(SearchHttpHealthChecksCompleter.__init__   s#    	
)49 -
r   rR   r6   s   @r   ry   ry      rb   r   ry   c                        e Zd Z fdZ xZS )HttpsHealthChecksCompleterc                 2    t        t        | 
  dddd| y )Ncompute.httpsHealthChecksz&compute https-health-checks list --urirQ   r   )r/   r|   r0   r1   s     r   r0   z#HttpsHealthChecksCompleter.__init__   s(    	
$d4 .= r   rR   r6   s   @r   r|   r|      rS   r   r|   c                        e Zd Z fdZ xZS ) SearchHttpsHealthChecksCompleterc                 0    t        t        | 
  dddi| y )Nr   r~   r   )r/   r   r0   r1   s     r   r0   z)SearchHttpsHealthChecksCompleter.__init__   #    	
*D: .
r   rR   r6   s   @r   r   r      rb   r   r   c                        e Zd Z fdZ xZS )InstancesCompleterc                 2    t        t        | 
  dddd| y )Ncompute.instanceszcompute instances list --urirQ   r   )r/   r   r0   r1   s     r   r0   zInstancesCompleter.__init__  s(    	
d, &3 r   rR   r6   s   @r   r   r      rS   r   r   c                        e Zd Z fdZ xZS )SearchInstancesCompleterc                 0    t        t        | 
  dddi| y )Nr   r   r   )r/   r   r0   r1   s     r   r0   z!SearchInstancesCompleter.__init__  s#    	
"D2 &
r   rR   r6   s   @r   r   r   	  rb   r   r   c                        e Zd Z fdZ xZS )InstanceGroupsCompleterc                 2    t        t        | 
  dddd| y )Nzcompute.instanceGroupsz,compute instance-groups unmanaged list --urirQ   r   )r/   r   r0   r1   s     r   r0   z InstanceGroupsCompleter.__init__  s(    	
!41 +C r   rR   r6   s   @r   r   r     rS   r   r   c                        e Zd Z fdZ xZS )InstanceTemplatesCompleterc                 2    t        t        | 
  dddd| y )Ncompute.instanceTemplatesz%compute instance-templates list --urirQ   r   )r/   r   r0   r1   s     r   r0   z#InstanceTemplatesCompleter.__init__  s(    	
$d4 .< r   rR   r6   s   @r   r   r     rS   r   r   c                        e Zd Z fdZ xZS ) SearchInstanceTemplatesCompleterc                 0    t        t        | 
  dddi| y )Nr   r   r   )r/   r   r0   r1   s     r   r0   z)SearchInstanceTemplatesCompleter.__init__%  r   r   rR   r6   s   @r   r   r   #  rb   r   r   c                        e Zd Z fdZ xZS )MachineImagesCompleterc                 2    t        t        | 
  dddd| y )Ncompute.machineImagesz!compute machine-images list --urirQ   r   )r/   r   r0   r1   s     r   r0   zMachineImagesCompleter.__init__-  s(    	
 $0 *8 r   rR   r6   s   @r   r   r   +  rS   r   r   c                        e Zd Z fdZ xZS )SearchMachineImagesCompleterc                 0    t        t        | 
  dddi| y )Nr   r   r   )r/   r   r0   r1   s     r   r0   z%SearchMachineImagesCompleter.__init__6  s#    	
&6 *
r   rR   r6   s   @r   r   r   4  rb   r   r   c                        e Zd Z fdZ xZS )InstantSnapshotsCompleterc                 D    t        t        | 
  ddt        t        gi| y ra   )r/   r   r0   RegionInstantSnapshotsCompleterZoneInstantSnapshotsCompleterr1   s     r   r0   z"InstantSnapshotsCompleter.__init__>  s-    	
#T3 +-J
 	r   rR   r6   s   @r   r   r   <  rZ   r   r   c                        e Zd Z fdZ xZS )r   c                 4    t        t        | 
  ddddd| y )Nzcompute.instantSnapshots*alpha compute instant-snapshots list --urirW   r   r,   rY   r   )r/   r   r0   r1   s     r   r0   z&ZoneInstantSnapshotsCompleter.__init__H  s+    	
'7 -A 	r   rR   r6   s   @r   r   r   F  rZ   r   r   c                        e Zd Z fdZ xZS )r   c                 4    t        t        | 
  ddddd| y )Nzcompute.regionInstantSnapshotsr   rW   r   r   )r/   r   r0   r1   s     r   r0   z(RegionInstantSnapshotsCompleter.__init__R  s+    	
)49 3A 	r   rR   r6   s   @r   r   r   P  rZ   r   r   c                        e Zd Z fdZ xZS )InstantSnapshotGroupsCompleterc                 D    t        t        | 
  ddt        t        gi| y ra   )r/   r   r0   $RegionInstantSnapshotGroupsCompleter"ZoneInstantSnapshotGroupsCompleterr1   s     r   r0   z'InstantSnapshotGroupsCompleter.__init__\  s-    	
($8 0.

 r   rR   r6   s   @r   r   r   Z  s     r   r   c                        e Zd Z fdZ xZS )r   c                 4    t        t        | 
  ddddd| y )Nzcompute.instantSnapshotGroups0alpha compute instant-snapshot-groups list --urirW   r   r   )r/   r   r0   r1   s     r   r0   z+ZoneInstantSnapshotGroupsCompleter.__init__h  s+    	
,d< 2G 	r   rR   r6   s   @r   r   r   f       r   r   c                        e Zd Z fdZ xZS )r   c                 4    t        t        | 
  ddddd| y )Nz#compute.regionInstantSnapshotGroupsr   rW   r   r   )r/   r   r0   r1   s     r   r0   z-RegionInstantSnapshotGroupsCompleter.__init__s  s+    	
.> 8G 	r   rR   r6   s   @r   r   r   q  r   r   r   c                        e Zd Z fdZ xZS )MachineTypesCompleterc                 2    t        t        | 
  dddd| y )Nzcompute.machineTypesz compute machine-types list --urirQ   r   )r/   r   r0   r1   s     r   r0   zMachineTypesCompleter.__init__~  rg   r   rR   r6   s   @r   r   r   |  rS   r   r   c                        e Zd Z fdZ xZS )RoutesCompleterc                 2    t        t        | 
  dddd| y )Nzcompute.routeszcompute routes list --urirQ   r   )r/   r   r0   r1   s     r   r0   zRoutesCompleter.__init__  s'    	/4) #0 r   rR   r6   s   @r   r   r     rS   r   r   c                        e Zd Z fdZ xZS )NetworksCompleterc                 2    t        t        | 
  dddd| y )Nzcompute.networkszcompute networks list --urirQ   r   )r/   r   r0   r1   s     r   r0   zNetworksCompleter.__init__  s(    	
T+ %2 r   rR   r6   s   @r   r   r     s     r   r   c                   "     e Zd ZdZ fdZ xZS )TestCompletera6  A completer that checks env var _ARGCOMPLETE_TEST for completer info.

  For testing list command completers.

  The env var is a comma separated list of name=value items:
    collection=COLLECTION
      The collection name.
    list_command=COMMAND
      The gcloud list command string with gcloud omitted.
  c                    t        j                  t        j                  dd      }t	        |      }|j                  d      D ]  }|j                  d      \  }}|||<    d|vsd|vrt        d      t        t        | &  di | y )	N_ARGCOMPLETE_TESTzparameters=bad,=r   r,   zSpecify test completer parameters in the _ARGCOMPLETE_TEST environment variable. It is a comma-separated separated list of name=value test parameters and must contain at least "collection=COLLECTION,list_command=LIST COMMAND" parameters.r   )
r	   GetEncodedValueosenvirondictsplitr   r/   r   r0   )r!   r2   test_parameterspairnamevaluer3   s         r   r0   zTestCompleter.__init__  s    ..rzz;N/?AO&\F%%c*JJsOkdEfTl + 6!^6%A"JK K
 
-'1&1r   r4   r6   s   @r   r   r     s    	2 2r   r   ):r   
__future__r   r   r   r   +googlecloudsdk.command_lib.resource_managerr   r   googlecloudsdk.command_lib.utilr   googlecloudsdk.corer   googlecloudsdk.core.utilr	   r   r   r   r'   r8   r   rH   r   r<   rE   rJ   rO   rU   r\   MultiResourceCompleterr_   rd   ri   rk   rl   ResourceSearchCompleterrr   ru   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s    N &  ' 	 a 6 > * -$J $?U ?
Z>> 
 	- 		+ 	  ,<<dC'U# 1KK ::: 
!5 
() !5 2 :: 0 !B!B "6 "6 *"D"D  4 j&H&H !5 z'I'I - zAA 2 !5 z'I'I 1 :#E#E 
 A A $8 &: 	Z%F%F 	)= +? 0 * , 2( 2r   