
                             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 d
 Z G d dej$                        Zy)z)Command for creating target gRPC proxies.    )absolute_import)division)unicode_literals)base_classes)base)scope)flags)target_grpc_proxies_utilsc                      ddddS )NCreate a target gRPC proxy.aU        *{command}* is used to create target gRPC proxies. A target gRPC proxy is
      a component of load balancers intended for load balancing gRPC traffic.
      Global forwarding rules reference a target gRPC proxy. The Target gRPC
      proxy references a URL map which specifies how traffic routes to gRPC
      backend services.
      aO        If there is an already-created URL map with the name URL_MAP, create a
      global target gRPC proxy pointing to this map by running:

        $ {command} PROXY_NAME --url-map=URL_MAP

      To create a proxy with a textual description, run:

        $ {command} PROXY_NAME --url-map=URL_MAP --description="default proxy"
      )briefDESCRIPTIONEXAMPLES r       1lib/surface/compute/target_grpc_proxies/create.py_DetailedHelpr      s     (
	

 r   c                   <    e Zd ZdZdZdZ e       Zed        Z	d Z
y)Creater   Nc                    t        j                         | _        | j                  j                  |d       t	        j
                  d      | _        | j                  j                  |       |j                  j                  t         j                         |j                  j                  t         j                         t        j                  |       t        j                  |       y )Ncreate)operation_typegRPC)
proxy_type)r	   TargetGrpcProxyArgumentTARGET_GRPC_PROXY_ARGAddArgumenturl_map_flagsUrlMapArgumentForTargetProxyURL_MAP_ARGdisplay_info	AddFormatDEFAULT_LIST_FORMATAddCacheUpdaterTargetGrpcProxiesCompleterAddDescriptionAddValidateForProxyless)clsparsers     r   ArgszCreate.Args>   s     % = = ?C))&)J#@@COOO'
!!%";";<
''(H(HI	 	!!&)r   c                 z   t        j                  | j                               }| j                  j	                  ||j
                  t        j                  j                        }t        j                  || j                  ||j
                        }|j                  }|j                  j                  |j                  |j!                         |j#                         |j$                        }|j                  j'                  |j(                  |      }|j*                  j,                  }|j/                  |d|fg      S )z)Issue a Target gRPC Proxy Insert request.)default_scope)descriptionnameurlMapvalidateForProxyless)projecttargetGrpcProxyInsert)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALr
   ResolveTargetGrpcProxyUrlMapr    clientmessagesTargetGrpcProxyr-   NameSelfLinkvalidate_for_proxyless%ComputeTargetGrpcProxiesInsertRequestr1   apitools_clienttargetGrpcProxiesMakeRequests)	selfargsholdertarget_grpc_proxy_refurl_map_refr<   target_grpc_proxyrequest
collections	            r   Runz
Create.RunL   s   **4+<+<+>?F 66HHfm.E.E.L.L I N+HHd 5v7G7GIK ]]F77$$"'')##%!88	 8 :
 ooCC%--) D +G ''99JXw ?@AAr   )__name__
__module____qualname____doc__r    r   r   detailed_helpclassmethodr*   rN   r   r   r   r   r   7   s/    #+/-* *Br   r   N)rR   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r8   6googlecloudsdk.command_lib.compute.target_grpc_proxiesr	   r
   +googlecloudsdk.command_lib.compute.url_mapsr   r   CreateCommandr   r   r   r   <module>r\      s>    0 &  ' 7 ( E H \ N4'BT 'Br   