
                            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S.r\R4                  " \R6                  R8                  5       " S S\R:                  5      5       r\R4                  " \R6                  R>                  5       " S S\5      5       r \R4                  " \R6                  RB                  5       " S S\ 5      5       r"g)z Import forwarding rules command.    )absolute_import)division)unicode_literals)
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.GetApiVersion7   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.ArgsF   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.SendPatchRequestL   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@   rA   )

Collectionapitools_clientforwardingRulesInsertmessages#ComputeForwardingRulesInsertRequestrA   rB   globalForwardingRules)ComputeGlobalForwardingRulesInsertRequest)r7   r8   r9   forwarding_rules       r   SendInsertRequestImport.SendInsertRequestS   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   r8   r,   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   ReadFromFileOrStdinsourcer%   r   rG   r"   r&   r   ValidationErrorr   strutilsSendGetRequestapitools_exceptions	HttpErrorstatus_coderL   PromptContinuer4   r5   idfingerprintrW   appendrX   _support_source_ip_rangerY   rZ   rD   IncludeFieldsr<   )r7   argsholderr8   r9   datarK   eforwarding_rule_olderrorcleared_fieldss              r   Run
Import.Runa   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_helprm   classmethodr   r&   r0   r<   rL   rv   __static_attributes__rx   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      $ )r3   r?   )rA   rB   r@   forwardingRuleResource)rA   r@   r   )rC   rD   rE   PatchrG   "ComputeForwardingRulesPatchRequestrA   rB   r5   rI   (ComputeGlobalForwardingRulesPatchRequest)r7   r8   r9   r:   s       r   r<   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   rx   N)ry   rz   r{   r|   r}   r<   r   rx   r   r   r   r      s
    !1r   r   c                       \ rS rSrSrSrSrg)ImportAlpha   r   Trx   N)ry   rz   r{   r|   r}   rm   r   rx   r   r   r   r      s    !!r   r   N)#r}   
__future__r   r   r   apitools.base.pyr   rf   googlecloudsdk.api_lib.computer   r   rd   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   rx   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   