
    I                        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S.r\	R,                  " \	R.                  R0                  5       " S S\	R2                  5      5       r\	R,                  " \	R.                  R6                  5       " S S\5      5       r\	R,                  " \	R.                  R:                  5       " S S\5      5       rg)z Import forwarding rules command.    )
exceptions)base_classes)forwarding_rules_utils)base)flags)util)yaml_validator)
console_iozK          Imports a forwarding rule's configuration from a file.
          zo          Import a forwarding rule by running:

            $ {command} NAME --source=<path-to-file>
          )DESCRIPTIONEXAMPLESc                   j    \ rS rSrSrSr\rSr\	S 5       r
\	SS j5       r\	S 5       rS rS	 rS
 rSrg)Import,   Import a forwarding rule.NFc                     U R                  5       [        R                   R                  :X  a  gU R                  5       [        R                   R                  :X  a  gg)z3Returns the API version based on the release track.alphabetav1)ReleaseTrackr   ALPHABETA)clss    .lib/surface/compute/forwarding_rules/import.pyGetApiVersionImport.GetApiVersion4   sG     T..444				t0055	5    c                 L    [         R                  " SU R                  5       SUS9$ )z!Returns the resource schema path.computeForwardingRulefor_help)export_utilGetSchemaPathr   )r   r!   s     r   r#   Import.GetSchemaPath=   s,     $$3$$&(88M Mr   c                     [         R                  " 5       U l        U R                  R                  USS9  [        R
                  " XR                  SS95        g )Nimport)operation_typeTr    )r   ForwardingRuleArgumentFORWARDING_RULE_ARGAddArgumentr"   AddImportFlagsr#   )r   parsers     r   ArgsImport.ArgsC   sH    #::<C''x'Hv'8'8$'8'GHr   c                 V    SR                  UR                  5       5      n[        U5      e)%Create forwarding rule patch request.z5Forwarding Rule [{0}] cannot be updated in version v1)formatNameNotImplementedError)selfclientforwarding_rule_refreplacementconsole_messages        r   SendPatchRequestImport.SendPatchRequestI   s1     	@FF$$&	(  o
..r   c                 \   UR                  5       S:X  aR  UR                  R                  R                  UR                  R                  UUR                  UR                  S95      $ UR                  R                  R                  UR                  R                  UUR                  S95      $ )z$Send forwarding rule insert request.compute.forwardingRules)forwardingRuleprojectregion)r=   r>   )

Collectionapitools_clientforwardingRulesInsertmessages#ComputeForwardingRulesInsertRequestr>   r?   globalForwardingRules)ComputeGlobalForwardingRulesInsertRequest)r4   r5   r6   forwarding_rules       r   SendInsertRequestImport.SendInsertRequestP   s    %%'+DD##33::
//
=
=,)11(// > 12 2 !!77>>AA*'// 	B 	12 2r   c                 R   [         R                  " U R                  5       5      nUR                  nU R                  R                  UUR                  [        R                  " UR                  5      S9n[        R                  " UR                  =(       d    SSS9n [        R                  " UR                  R                  UU R!                  5       S9n [*        R,                  " X45      nX:X  a  g [        R6                  " SR9                  UR;                  5       5      SS	9  UR<                  Ul        UR>                  Ul        / n
UR@                  (       d  U
RC                  S
5        URD                  (       d  U
RC                  S5        U RF                  (       a"  URH                  (       d  U
RC                  S5        URJ                  (       d  U
RC                  S5        URL                  RO                  U
5         U RQ                  X4U5      sS S S 5        $ ! ["        R$                   a$  n[&        R$                  " [)        U5      5      eS nAff = f! [.        R0                   a.  n	U	R2                  S:w  a  U	eU R5                  X4U5      s S n	A	$ S n	A	ff = f! , (       d  f       g = f)N)scope_lister-F)binary)message_typestreamschema_pathi  z*Forwarding Rule [{0}] will be overwritten.T)messagecancel_on_nonetworkTierallowGlobalAccesssourceIpRangesmetadataFilters))r   ComputeApiHolderr   r5   r)   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr
   ReadFromFileOrStdinsourcer"   r   rD   r   r#   r	   ValidationErrorr   strutilsSendGetRequestapitools_exceptions	HttpErrorstatus_coderI   PromptContinuer1   r2   idfingerprintrT   appendrU   _support_source_ip_rangerV   rW   rA   IncludeFieldsr9   )r4   argsholderr5   r6   datarH   eforwarding_rule_olderrorcleared_fieldss              r   Run
Import.Run^   s,   **4+<+<+>?F]]F22DD"88G E I
 ))$++*<UKD/#**55((*,o5!00M -=EE$$&( -//O"5"A"AO N&&M*,,/0$$_-K-K,-**-.				-	-n	=""6P 
>	=M )) /&&s1v../ (( 5			c	!##F$35 5	5@ 
>	=sB   8H I <JI,IIJ'#J
JJ
J& )F)__name__
__module____qualname____firstlineno____doc__r)   DETAILED_HELPdetailed_helprj   classmethodr   r#   r-   r9   rI   rs   __static_attributes__ru   r   r   r   r   ,   sd    !-"  M M
 I I
/27Qr   r   c                       \ rS rSrSrS rSrg)
ImportBeta   r   c           	         UR                  5       S:X  aa  UR                  R                  R                  UR                  R                  UR                  UR                  UR                  5       US95      $ UR                  R                  R                  UR                  R                  UR                  UR                  5       US95      $ )r0   r<   )r>   r?   r=   forwardingRuleResource)r>   r=   r   )r@   rA   rB   PatchrD   "ComputeForwardingRulesPatchRequestr>   r?   r2   rF   (ComputeGlobalForwardingRulesPatchRequest)r4   r5   r6   r7   s       r   r9   ImportBeta.SendPatchRequest   s     %%'+DD##3399
//
<
<)11(//0557%0	 = 23 3 !!77==@@'//.335#. 	A 	01 1r   ru   N)rv   rw   rx   ry   rz   r9   r~   ru   r   r   r   r      s
    !1r   r   c                       \ rS rSrSrSrSrg)ImportAlpha   r   Tru   N)rv   rw   rx   ry   rz   rj   r~   ru   r   r   r   r      s    !!r   r   N)rz   apitools.base.pyr   rc   googlecloudsdk.api_lib.computer   r   ra   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r[   3googlecloudsdk.command_lib.compute.forwarding_rules!googlecloudsdk.command_lib.exportr   r"   googlecloudsdk.corer	   googlecloudsdk.core.consoler
   r{   ReleaseTracksr   GAUpdateCommandr   r   r   r   r   ru   r   r   <module>r      s    ' ? 7 J ( E J E A . 2
		 D%%(()hQT hQ *hQV D%%**+1 1 ,1* D%%++,*  -r   