
    g                        d 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 ddlm	Z	 ddl
mZ dd	lmZ dd
lmZ  e	j                   e	j"                  j$                         G d de	j&                               Z ej*                  d      e_         e	j                   e	j"                  j.                  e	j"                  j0                         G d de             Z ej4                  d      e_        y)z'Command for listing instance templates.    )absolute_import)division)unicode_literals)base_classes)lister)base)
completers)flags)	arg_utilsc                   2    e Zd ZdZed        Zd Zd Zd Zy)List7List Compute Engine virtual machine instance templates.c                     | j                   j                  t        j                         t	        j
                  | dd       | j                   j                  t        j                         y )NTregionalglobal_)	display_info	AddFormatr
   DEFAULT_LIST_FORMATr   AddMultiScopeListerFlagsAddCacheUpdaterr	   InstanceTemplatesCompleterparsers    .lib/surface/compute/instance_templates/list.pyArgsz	List.Args!   sH    
!!%";";<
##FT4H
''
(M(MN    c                 .    t        j                  ||      S N)r   ParseNamesAndRegexpFlagsselfargs	resourcess      r   
ParseFlagszList.ParseFlags'   s    **4;;r   c                     t        j                  ||j                  j                  |j                  j                  |j                  j                        S )N)regional_serviceglobal_serviceaggregation_service)r   MultiScopeListerapitools_clientregionInstanceTemplatesinstanceTemplates)r"   clients     r   GetListImplementationzList.GetListImplementation*   sE    ""//GG--??"22DD	
 
r   c                     t        j                  | j                               }|j                  }t	        j
                  ||j                        }| j                  |      }t	        j                  ||      S r   	r   ComputeApiHolderReleaseTrackr.   r   ParseMultiScopeFlagsr$   r/   Invoker"   r#   holderr.   request_datalist_implementations         r   RunzList.Run2   s_    **4+<+<+>?F]]F..tV5E5EFL44V<==':;;r   N)	__name__
__module____qualname____doc__staticmethodr   r%   r/   r:    r   r   r   r      s(    ?O O
<
<r   r   zinstance templatesc                   >    e Zd ZdZed        Zd Zd Zd Zd Z	d Z
y)		ListAlphar   c                 $   | j                   j                  t        j                         t	        j
                  | dd       | j                   j                  t        j                         | j                  ddddt        j                  d       y )	NTr   z--viewz_Output contains all configuration details of the instance template, including partner metadata.zqDefault output view. Output contains all configuration details of the instance template, except partner metadata.)FULLBASICz9Specifies the information that the output should contain.)choicestypehelp)r   r   r
   r   r   r   r   r	   r   add_argumentr   ChoiceToEnumNamer   s    r   r   zListAlpha.ArgsC   s|    
!!%";";<
##FT4H
''
(M(MN
9F	
 ''H  r   c                 .    t        j                  ||      S r   )r   r4   r!   s      r   r%   zListAlpha.ParseFlagsX   s    &&tY77r   c                 p    |dk(  r|j                   j                  S |dk(  r|j                   j                  S y )NrD   rE   )ViewValueValuesEnumrD   rE   )r"   viewrequest_messages      r   _GetInstanceViewzListAlpha._GetInstanceView[   s7    v~00555	00666r   c                 z    t        |j                  t        j                        r|j                  S |j
                  S r   )
isinstance	scope_setr   	RegionSet)ComputeRegionInstanceTemplatesListRequest#ComputeInstanceTemplatesListRequest)r"   messagesr8   s      r   _getRequestzListAlpha._getRequestb   s0    ,((&*:*:;???777r   c                    t        j                  ||j                  j                  |j                  j                  |j                  j                  | j                  |j                  | j                  |j                  |                  S )N)r'   r(   r)   instance_view_flag)	r   r*   r+   r,   r-   rP   rN   rX   rW   )r"   r.   r#   r8   s       r   r/   zListAlpha.GetListImplementationg   sm    ""//GG--??"22DD00IIt''F
 r   c                     t        j                  | j                               }|j                  }t	        j
                  ||j                        }| j                  |||      }t	        j                  ||      S r   r1   r6   s         r   r:   zListAlpha.Runr   sc    **4+<+<+>?F]]F..tV5E5EFL44VT<P==':;;r   N)r;   r<   r=   r>   r?   r   r%   rP   rX   r/   r:   r@   r   r   rB   rB   ?   s0    ? (88
	<r   rB   N)r>   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   5googlecloudsdk.command_lib.compute.instance_templatesr
   $googlecloudsdk.command_lib.util.apisr   ReleaseTracksr3   GAListCommandr   GetGlobalListerHelpdetailed_helpALPHABETArB   GetGlobalRegionalListerHelpr@   r   r   <module>rj      s    . &  ' 7 1 ( 9 G : D%%(()<4 < *<< 6\556JK  D%%++T->->-C-CD9< 9< E9<x C,BB	 r   