
    r                        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	 Zej                    ej"                  ej$                  j&                         G d
 dej(                                      Z ej"                  ej$                  j,                        ej                    G d de                    Z ej"                  ej$                  j0                        ej                    G d de                    Zy)z#Command for describing subnetworks.    )absolute_import)division)unicode_literals)base_classes)base)flags)	arg_utilsc                      ddddS )Nz%Describe a Compute Engine subnetwork.ze          *{command}* displays all data associated with a Compute Engine
          subnetwork.
      zj        To display all data associated with subnetwork subnet-1, run:

        $ {command} subnet-1
      )briefDESCRIPTIONEXAMPLES r       0lib/surface/compute/networks/subnets/describe.py_DetailedHelpr      s    6


 r   c                   B    e Zd ZdZdZdZ e       Zed        Z	d Z
d Zy)DescribezxDescribe a Compute Engine subnetwork.

  *{command}* displays all data associated with a Compute Engine
  subnetwork.
  TNc                     t        j                         t        _        t        j                  j	                  |d       | j
                  r'|j                  dddit        j                  dd       y y )	Ndescribe)operation_typez--viewWITH_UTILIZATIONzOutput includes the IP address utilization data of all subnetwork ranges, showing total allocated and free IPv4 and IPv6 IP addresses.appendz3Specifies the information to include in the output.)choicestypeactionhelp)	r   SubnetworkArgumentr   SUBNETWORK_ARGAddArgument_include_viewadd_argumentr	   ChoiceToEnumName)clsparsers     r   ArgszDescribe.Args:   sn    #668H''z'J

 , ))C   r   c                 n    g }|D ]-  }|dk(  s	|j                  |j                  j                         / |S )Nr   )r   ViewsValueValuesEnumr   )selfviewrequest_messageviewsvs        r   _GetSubnetworkViewszDescribe._GetSubnetworkViewsO   s9    E	
 	 _99JJK  Lr   c                 $   t        j                  | j                               }|j                  }t        j
                  j                  ||j                  t        j                  |            } |j                  j                  di |j                         }| j                  rA|j                  r5| j                  |j                  |j                  j                        |_        |j#                  |j$                  j&                  d|fg      d   S )N)scope_listerGetr   r   )r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListermessagesComputeSubnetworksGetRequestAsDictr    r)   r-   r+   MakeRequestsapitools_clientsubnetworks)r(   argsholderr3   subnetwork_refrequests         r   RunzDescribe.RunV   s    **4+<+<+>?F]]F,,>>"88@ ? N ;foo:: 



!G dii..
))V__AAgm 

 
 
,
,eW	=>	 	r   )__name__
__module____qualname____doc__r    r   r   detailed_helpclassmethodr%   r-   rB   r   r   r   r   r   ,   s6     -./- (	r   r   c                       e Zd ZdZdZy)DescribeBetaz*Create a subnet in the Beta release track.TNrC   rD   rE   rF   r    r   r   r   rJ   rJ   n   s     3-r   rJ   c                       e Zd ZdZdZy)DescribeAlphaz-Describe a subnet in the Alpha release track.TNrK   r   r   r   rM   rM   v   s     6-r   rM   N)rF   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r6   3googlecloudsdk.command_lib.compute.networks.subnets$googlecloudsdk.command_lib.util.apisr	   r   UniverseCompatibleReleaseTracksr2   GADescribeCommandr   BETArJ   ALPHArM   r   r   r   <module>rZ      s     * &  ' 7 ( E E : D%%(()=	t## =	 * =	@ D%%**+8   , D%%++,L   -r   