
                             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\
R,                  5      rg)z(Command for creating target SSL proxies.    )absolute_import)division)unicode_literals)base_classes)target_proxies_utils)utils)base)resource_args)flags)target_ssl_proxies_utilsc                   `    \ rS rSrSrSr\R                  rSr	Sr
SrSr\S 5       rS rS rSrg)	Create$   a  Create a target SSL proxy.

*{command}* is used to create target SSL proxies. A target SSL proxy is
referenced by one or more forwarding rules which define which packets the
proxy is responsible for routing. The target SSL proxy points to a backend
service which handle the actual requests. The target SSL proxy also points
to at most 15 SSL certificates used for server-side authentication or one
certificate map. The target SSL proxy can be associated with at most one SSL
policy.
TNc           	      z   [         R                  " U5        [        R                  " 5       U l        U R                  R                  U5        [        R                  " 5       U l        U R                  R                  USS9  [        R                  " SU R                  (       + SS9U l        U R                  (       d  U R                  R                  USS9  [        R                  " SSS	9U l        U R                  R                  U5        UR!                  S
SS9  UR"                  R%                  [        R&                  5        UR"                  R)                  U R*                  5        U R                  (       aC  UR-                  SS	9nU R                  R                  USS9  [.        R0                  " USSSSSS9  g g )Ncreate)operation_typeztarget SSL proxyF)required!include_regional_ssl_certificatesSSL_CERTIFICATE)cust_metavarSSL)r   z--descriptionz:An optional, textual description for the target SSL proxy.)helpTz	to attachzcertificate-map)name
positionalr   with_location)r   AddProxyHeaderRelatedCreateArgsbackend_service_flags'BackendServiceArgumentForTargetSslProxyBACKEND_SERVICE_ARGAddArgumentr   TargetSslProxyArgumentTARGET_SSL_PROXY_ARGssl_certificates_flags'SslCertificatesArgumentForOtherResource_certificate_mapSSL_CERTIFICATES_ARGssl_policies_flags.GetSslPolicyMultiScopeArgumentForOtherResourceSSL_POLICY_ARGadd_argumentdisplay_infoAddCacheUpdaterTargetSslProxiesCompleter	AddFormat_list_formatadd_argument_groupr
   AddCertificateMapResourceArg)clsparsergroups      0lib/surface/compute/target_ssl_proxies/create.pyArgsCreate.Args8   s   88@ 	EEG ''/$;;=C(((I 	FF---.3	5 
 	**
0 + 2 ,ZZC""6*
I  K ''(G(GH
!!#"2"23
'''6e	**
/ + 100

 	     c                 2   [         R                  " U R                  5       5      nU R                  R	                  XR
                  5      nU R                  R	                  XR
                  5      nS nUR                  (       a%  U R                  R	                  XR
                  5      nUR                  R                  nUR                  R                  nUR                  (       a&  UR                  R                  UR                  5      nO UR                  R                  R                  nUR                  UR                   UR#                  5       UUR%                  5       S9n	U(       a%  U V
s/ s H  oR%                  5       PM     sn
U	l        UR(                  (       a?  [*        R,                  " XR.                  UUR
                  5      R%                  5       U	l        U R2                  (       a@  UR4                  R6                  R9                  5       nU(       a  UR%                  5       U	l        UR=                  UR>                  U	S9n/ nUR                  RA                  URB                  SU4/U5      nU(       a  [D        RF                  " U5        U$ s  sn
f )N)descriptionr   proxyHeaderservice)projecttargetSslProxyInsert)$r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcesr"   ssl_certificatesr&   clientapitools_clientmessagesproxy_headerTargetSslProxyProxyHeaderValueValuesEnumNONEr:   NameSelfLinksslCertificates
ssl_policyr   ResolveSslPolicyr)   	sslPolicyr%   CONCEPTScertificate_mapParsecertificateMap$ComputeTargetSslProxiesInsertRequestr=   MakeRequeststargetSslProxiesr   RaiseToolException)selfargsholderbackend_service_reftarget_ssl_proxy_refssl_cert_refsrE   rG   rH   target_ssl_proxyrefcertificate_map_refrequesterrorsrC   s                  r5   _CreateResourceCreate._CreateResourceb   s2   **4+<+<+>?F22DD   44FF  M//AA
  "m ]]**F}}%%H,,GG


l --HHMMl..$$!&&( #,,.	 / 0 $1*$1S,,.M*& #;#L#L
##%9


$$HJ    MM99??A	*=*F*F*H';;$,,=M < OG F**

!
!8W	56@I v&/*s   -Jc                 $    U R                  U5      $ )N)re   )rZ   r[   s     r5   Run
Create.Run   s    %%r8    )__name__
__module____qualname____firstlineno____doc__r%   r   DEFAULT_LIST_FORMATr/   r   r&   r"   r)   classmethodr6   re   rh   __static_attributes__rj   r8   r5   r   r   $   sO    	 **,.' 'R4l&r8   r   N)ro   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r   googlecloudsdk.callioper	   .googlecloudsdk.command_lib.certificate_managerr
   3googlecloudsdk.command_lib.compute.backend_servicesr   r   3googlecloudsdk.command_lib.compute.ssl_certificatesr#   /googlecloudsdk.command_lib.compute.ssl_policiesr'   5googlecloudsdk.command_lib.compute.target_ssl_proxiesr   CreateCommandr   rj   r8   r5   <module>r|      sL    / &  ' 7 ? 0 ( H$%Q G Zu&T u&r8   