
    %                     @   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S r  SS jrS r\	R>                  " \	R@                  RB                  5      \	RD                   " S S\	RF                  5      5       5       r$\	R>                  " \	R@                  RJ                  5       " S S\$5      5       r&\	R>                  " \	R@                  RN                  5       " S S\&5      5       r(g)z*Command for creating target HTTPS proxies.    )absolute_import)division)unicode_literals)base_classes)target_proxies_utils)base)resource_args)reference_utils)scope)flags)target_https_proxies_utilsc                      SSSS.$ )NCreate a target HTTPS proxy.aa  
      *{command}* is used to create target HTTPS proxies. A target
      HTTPS proxy is referenced by one or more forwarding rules which
      specify the network traffic that the proxy is responsible for
      routing. The target HTTPS proxy points to a URL map that defines
      the rules for routing the requests. The URL map's job is to map
      URLs to backend services which handle the actual requests. The
      target HTTPS proxy also points to at most 15 SSL certificates
      used for server-side authentication. The target HTTPS proxy can
      be associated with at most one SSL policy.
      a  
      If there is an already-created URL map with the name URL_MAP
      and a SSL certificate named SSL_CERTIFICATE, create a
      global target HTTPS proxy pointing to this map by running:

        $ {command} PROXY_NAME --url-map=URL_MAP --ssl-certificates=SSL_CERTIFICATE

      Create a regional target HTTPS proxy by running:

        $ {command} PROXY_NAME --url-map=URL_MAP --ssl-certificates=SSL_CERTIFICATE --region=REGION_NAME
      )briefDESCRIPTIONEXAMPLES r       2lib/surface/compute/target_https_proxies/create.py_DetailedHelpr   #   s    -




 r   Nc           	         U R                   R                  U5        U R                  SSS9  U R                   R                  [        R
                  5        [        R                  " U 5        [        R                  " U 5        U(       a  [        R                  " U S5        [        R                  " U 5        [        R                  " SSSS9R                  U 5        [        R                  " U SS	SSSS
9  g)z>Add the target https proxies command line flags to the parser.z--descriptionz<An optional, textual description for the target HTTPS proxy.)helpF	to attachzserver-tls-policyT)nameregion_fallthroughzcertificate-map)r   
positionalrequiredwith_locationN)display_info	AddFormatadd_argumentAddCacheUpdaterr   TargetHttpsProxiesCompleterr   AddQuicOverrideCreateArgsAddTlsEarlyDataCreateArgsAddProxyBindAddHttpKeepAliveTimeoutSecns_resource_argsGetServerTlsPolicyResourceArgAddToParsercm_resource_argsAddCertificateMapResourceArg)parsertraffic_director_securitylist_formats      r   _Argsr0   ?   s     	,I  
 	%%e&G&GH008008	vu%11&900+K//r   c	                    UR                   n	U(       a_  U R                  (       aN  U	R                  R                  U R                  UR                  5       UR                  5       UU R                  S9n
OBU	R                  R                  U R                  UR                  5       UR                  5       US9n
U R                  S5      (       a  U R                  U
l	        U R                  S5      (       a7  U	R                  R                  R                  nU" U R                  5      U
l        U R                  (       a7  U	R                  R                  R                  nU" U R                  5      U
l        U(       a  UR                  5       U
l        U(       a  UR                  5       U
l        U(       a  UR                  5       U
l        [&        R(                  " U5      (       aF  U	R                  R+                  UR,                  UR.                  U
S9nU	R0                  R2                  nO:U	R                  R5                  UR,                  U
S9nU	R0                  R6                  nU	R9                  USU4/5      $ )z9Issues requests necessary to create Target HTTPS Proxies.)descriptionr   urlMapsslCertificates	proxyBind)r2   r   r3   r4   http_keep_alive_timeout_secquic_override)projectregiontargetHttpsProxy)r8   r:   Insert)client
proxy_bindmessagesTargetHttpsProxyr2   NameSelfLinkIsSpecifiedr6   httpKeepAliveTimeoutSecQuicOverrideValueValuesEnumr7   quicOverridetls_early_dataTlsEarlyDataValueValuesEnumtlsEarlyData	sslPolicyserverTlsPolicycertificateMapr   IsRegionalTargetHttpsProxiesRef,ComputeRegionTargetHttpsProxiesInsertRequestr8   r9   apitools_clientregionTargetHttpsProxies&ComputeTargetHttpsProxiesInsertRequesttargetHttpsProxiesMakeRequests)argsholder	proxy_refurl_map_refssl_certificatesssl_policy_refr.   certificate_map_refserver_tls_policy_refr<   target_https_proxy	quic_enumtls_early_data_enumrequest
collections                  r   _Runr`   c   s    ==&4??99$$^^##%(// :   99$$^^##%(	 :  
344(( . 
o&&00LLI&/0B0B&C#	((DD  ':$:M:M&N##1#:#:#< )>)G)G)I&(;(D(D(F%??	JJooJJ!!+ K G
 ''@@JooDD!!4F E G ''::J			z8W=>	??r   c                   h    \ rS rSrSrSr\R                  rSr	Sr
SrSr\" 5       r\S 5       rS rSrg)Create   r   FNc                 <   UR                  5       n[        R                  " SSS9U l        U R                  R	                  XSS9  [
        R                  " USSSSSSUSS	9	  [        R                  " 5       U l	        U R                  R	                  US
S9  [        R                  " SS9U l        U R                  R	                  U5        [        R                  " SSS9U l        U R                  R	                  U5        [!        UU R"                  U R$                  S9  g )Nztarget HTTPS proxyF)r   SSL_CERTIFICATE)mutex_groupcust_metavarr   z certificate-manager-certificatesT)nounr   r   r   pluralgroupr   create)operation_typeHTTPS)
proxy_type)r.   r/   )add_mutually_exclusive_groupssl_certificates_flags'SslCertificatesArgumentForOtherResourceSSL_CERTIFICATES_ARGAddArgumentr+   AddCertificateResourceArgr   TargetHttpsProxyArgumentTARGET_HTTPS_PROXY_ARGurl_map_flagsUrlMapArgumentForTargetProxyURL_MAP_ARGssl_policies_flags.GetSslPolicyMultiScopeArgumentForOtherResourceSSL_POLICY_ARGr0   _traffic_director_security_list_format)clsr-   certificate_groups      r   ArgsCreate.Args   s   ;;=FF 5	
 
 ((<M )  ..//
 "'!?!?!AC**6(*K#@@CO OO' 	IIe	
 
 ""6*	"%"@"@$$r   c                    [         R                  " U R                  5       5      nU R                  R	                  XR
                  [        R                  R                  S9n[        R                  " XR                  X2R
                  5      n[        R                  " XR                  X2R
                  5      n[        R                  " U5      nU(       a   U Vs/ s H  owR                  5       PM     nnOLUR                   (       a;  UR                    Vs/ s H$  n["        R$                  " UR&                  Xh5      PM&     nnUR(                  (       a,  [        R*                  " XR,                  X2R
                  5      n	OS n	UR.                  R0                  R3                  5       n
S nUR5                  S5      (       a$  UR.                  R6                  R3                  5       n[9        UUUUUU	U R:                  U
U5	      $ s  snf s  snf )N)default_scopeserver_tls_policy)r   ComputeApiHolderReleaseTrackrv   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALr   ResolveTargetHttpsProxyUrlMapry   ResolveSslCertificatesrr   GetLocationrA    certificate_manager_certificatesr
   BuildCcmCertificateUrlr8   
ssl_policyResolveSslPolicyr|   CONCEPTScertificate_mapParseIsKnownAndSpecifiedr   r`   r}   )selfrS   rT   rU   rV   rW   locationrefcertificate_namerX   rY   rZ   s               r   Run
Create.Run   s   **4+<+<+>?F++==m.E.E.L.L > I -JJ	+;+;K 2HH''4D4D *55i@H4DE4DS,,.4DE		.	.
 #'"G"G	 #H 
0
0 #H	   1BB
##Y0@0@n n--77==?  344"mm==CCE''
 
' Fs   G<+Hr   )__name__
__module____qualname____firstlineno____doc__r}   r   DEFAULT_LIST_FORMATr~   rr   rv   ry   r|   r   detailed_helpclassmethodr   r   __static_attributes__r   r   r   rb   rb      sM     %$**,+./-) )V*r   rb   c                       \ rS rSrSrg)
CreateBetai  r   N)r   r   r   r   r   r   r   r   r   r     s    r   r   c                       \ rS rSrSrSrg)CreateAlphai  Tr   N)r   r   r   r   r}   r   r   r   r   r   r     s    #r   r   )FN))r   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   .googlecloudsdk.command_lib.certificate_managerr	   r+   "googlecloudsdk.command_lib.computer
   r   r   3googlecloudsdk.command_lib.compute.ssl_certificatesr   rp   /googlecloudsdk.command_lib.compute.ssl_policiesrz   7googlecloudsdk.command_lib.compute.target_https_proxiesr   +googlecloudsdk.command_lib.compute.url_mapsrw   +googlecloudsdk.command_lib.network_securityr(   r   r0   r`   ReleaseTracksr   GAUniverseCompatibleCreateCommandrb   BETAr   ALPHAr   r   r   r   <module>r      s    1 &  ' 7 ? ( \ > E _ W I ^ N Y< $!HC@L D%%(()bT b  *bJ D%%**+  , D%%++,$* $ -$r   