
                            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 rSS jrS rS r S r!S r"\RF                  " \RH                  RJ                  \RH                  RL                  \RH                  RN                  5       " S S\RP                  5      5       r)g)z#Import target HTTP Proxies command.    )absolute_import)division)unicode_literals)
exceptions)base_classes)base)flags)operation_utils)scope)target_http_proxies_utils)util)yaml_validator)
console_ioc                      SSSS.$ )NzImport a target HTTP proxy.zM          Imports a target HTTP proxy's configuration from a file.
          zz          A target HTTP proxy can be imported by running:

            $ {command} NAME --source=<path-to-file>
          )briefDESCRIPTIONEXAMPLES r       1lib/surface/compute/target_http_proxies/import.py_DetailedHelpr   #   s     (
 r   c                     U [         R                  R                  :X  a  gU [         R                  R                  :X  a  gg)z3Returns the API version based on the release track.alphabetav1)r   ReleaseTrackALPHABETA)release_tracks    r   _GetApiVersionr    4   s3    d''---))...	r   c                 B    [         R                  " S[        U 5      SUS9$ )z!Returns the resource schema path.computeTargetHttpProxyfor_help)export_utilGetSchemaPathr    )r   r%   s     r   _GetSchemaPathr(   =   s&    		"	"]#	
 r   c                    [         R                  " U5      (       aU  U R                  R                  nUR	                  U R
                  R                  UR                  UR                  US95      nOIU R                  R                  nUR	                  U R
                  R                  UR                  US95      n[        XXRS5      $ )z'Sends Target HTTP Proxy insert request.)projectregiontargetHttpProxy)r*   r,   zInserting TargetHttpProxy)r   IsRegionalTargetHttpProxiesRefapitools_clientregionTargetHttpProxiesInsertmessages+ComputeRegionTargetHttpProxiesInsertRequestr*   r+   targetHttpProxies%ComputeTargetHttpProxiesInsertRequest_WaitForOperation)client	resourcestarget_http_proxy_reftarget_http_proxyservice	operations         r   _SendInsertRequestr<   F   s     == $$<<GCC)11(//- 	D 	/0I $$66G==)11- 	> 	/0I
 
9y6
8 8r   c                 V   [         R                  " U5      (       a*  SR                  UR                  5       5      n[	        U5      eU R
                  R                  nUR                  U R                  R                  UR                  UR                  5       US95      n[        XXbS5      $ )z%Make target HTTP proxy patch request.z)Target HTTP Proxy [{0}] cannot be updated)r*   r,   targetHttpProxyResourcezUpdating TargetHttpProxy)r   r-   formatNameNotImplementedErrorr.   r3   Patchr1   $ComputeTargetHttpProxiesPatchRequestr*   r5   )r6   r7   r8   r9   console_messager:   r;   s          r   _SendPatchRequestrE   \   s     == BII""$&O
o
..""44'mmoo::'///446"3 ; 56) 
9y5
7 7r   c                     [         R                  " U5      (       a  [        R                  " 5       nO[        R                  " 5       n[        R
                  " XUXSU5      $ )z2Waits for the TargetHttpProxy operation to finish.)r   r-   r
   GetRegionalOperationsCollectionGetGlobalOperationsCollectionWaitForOperation)r7   r:   r;   r8   message
collections         r   r5   r5   p   sS     ==  @@BJ >>@J		)	))i*4*1
3 3r   c                    UR                   nUR                  nUR                  U UR                  [        R                  R
                  [        R                  " U5      S9n[        R                  " U R                  =(       d    SSS9n [        R                  " UR                  R                  U[        U5      S9n [(        R*                  " XF5      n
X:X  a  g[        R4                  " SR7                  UR9                  5       5      S	S
9  U
R:                  Ul        U
R<                  Ul        / nUR>                  c  URA                  S5        URB                  c  URA                  S5        U[D        RF                  RH                  :w  a  URJ                  c  URA                  S5        URL                  RO                  U5         [Q        XEUU5      sSSS5        $ ! [         R"                   a$  n	[$        R"                  " ['        U	5      5      eSn	A	ff = f! [,        R.                   a)  nUR0                  S:w  a  Ue[3        XEUU5      s SnA$ SnAff = f! , (       d  f       g= f)z8Issues requests necessary to import target HTTP proxies.)default_scopescope_lister-F)binary)message_typestreamschema_pathNi  z,Target Http Proxy [{0}] will be overwritten.T)rJ   cancel_on_nodescriptionurlMap	proxyBind))r6   r7   ResolveAsResourcecompute_scope	ScopeEnumGLOBALcompute_flagsGetDefaultScopeListerr   ReadFromFileOrStdinsourcer&   Importr1   r#   r(   r   ValidationErrorcompute_exceptionsstrr   SendGetRequestapitools_exceptions	HttpErrorstatus_coder<   PromptContinuer?   r@   idfingerprintrU   appendrV   r   r   GArW   r.   IncludeFieldsrE   )argsholdertarget_http_proxy_argr   r6   r7   r8   datar9   etarget_http_proxy_olderrorcleared_fieldss                r   _Runrv   ~   s   ==&)/AA
!++22 66v>	 B @ 
	'	'(:s5	I$5#**__44"=1315DD' /
=EE

$
$
&( /11"7"C"C .""*-(
 %(#d''***""*K(++N;V0E.0 <;S 
	'	' 5

,
,SV
445 
	&	& 1Ckf1F/1 1	1D <;sB   
3G >H IH.HHI)III
I#c                   @    \ rS rSrSr\" 5       rSr\S 5       r	S r
Srg)r`      zImport a target HTTP Proxy.Nc                     [         R                  " 5       U l        U R                  R                  USS9  [        R
                  " U[        U R                  5       SS95        g )Nimport)operation_typeTr$   )r	   TargetHttpProxyArgumentTARGET_HTTP_PROXY_ARGAddArgumentr&   AddImportFlagsr(   r   )clsparsers     r   ArgsImport.Args   sP     % = = ?C))&)Js//1DACr   c                     [         R                  " U R                  5       5      n[        XU R                  U R                  5       5      $ )N)r   ComputeApiHolderr   rv   r}   )selfrn   ro   s      r   Run
Import.Run   s9    **4+<+<+>?Fd88$:K:K:MNNr   r   )__name__
__module____qualname____firstlineno____doc__r   detailed_helpr}   classmethodr   r   __static_attributes__r   r   r   r`   r`      s.     $/-C COr   r`   N)F)*r   
__future__r   r   r   apitools.base.pyr   re   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computerb   r	   r\   r
   r   rY   6googlecloudsdk.command_lib.compute.target_http_proxiesr   !googlecloudsdk.command_lib.exportr   r&   googlecloudsdk.corer   googlecloudsdk.core.consoler   r   r    r(   r<   rE   r5   rv   ReleaseTracksr   rl   r   r   UpdateCommandr`   r   r   r   <module>r      s    * &  ' > 7 ( O E > E H \ A . 2"8,7(3=0@ D%%(($*;*;*@*@%%++-OT O-Or   