
    ]                        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  \R4                  " \R6                  R8                  \R6                  R:                  \R6                  R<                  5       " S S\R>                  5      5       r SSS.\ l!        g)z4Command for updating a Rule in a Compute Engine NAT.    )absolute_import)division)unicode_literals)base_classes)poller)waiter)base)flags)
nats_utils)rules_utils)log)	resourcesc                   .    \ rS rSrSr\S 5       rS rSrg)Update!   z&Update a Rule in a Compute Engine NAT.c                    [         R                  " 5       U l        U R                  R                  U5        [        R
                  " USSS9  [        R                  " U5        [        R                  " USSS9  [        R                  " USS9  [        R                  " U5        [        R                  R                  U5        g )NupdateF)operation_typepluralzNAT containing the Rule)r   )required)routers_flagsRouterArgumentForNat
ROUTER_ARGAddArgumentrules_flagsAddRuleNumberArgAddNatNameArgcompute_flagsAddRegionFlagAddMatchArgAddIpAndRangeArgsForUpdater	   
ASYNC_FLAGAddToParser)clsparsers     0lib/surface/compute/routers/nats/rules/update.pyArgsUpdate.Args'   s    "779CNNNv&  Of%)( FU3**62OO'    c           	         [         R                  " U R                  5       5      nUR                  R                  nUR                  R
                  R                  nU R                  R                  XR                  5      nUR                  nUR                  U" S0 UR                  5       D65      nUR                  nUR                  n	[        R                   " Xy5      n
["        R$                  " X5      n["        R&                  " XX*5        UR)                  UR+                  UR,                  UR.                  UR1                  5       US95      n[        R2                  R5                  UR6                  SUR,                  UR.                  S.S9nUR8                  (       a(  [:        R<                  " USR?                  X5      SSS9  U$ UR                  R5                  UR1                  5       S	UR,                  UR.                  S.S9n[@        RB                  " XN5      n[D        RF                  " XS
R?                  X5      5      $ )N)projectregionrouterrouterResourcezcompute.regionOperations)r+   r,   )
collectionparamszRule [{0}] in NAT [{1}]Tz[Run the [gcloud compute operations describe] command to check the status of this operation.)kindis_asyncdetailszcompute.routersz Updating Rule [{0}] in NAT [{1}] )$r   ComputeApiHolderReleaseTrackclientmessagesapitools_clientroutersr   ResolveAsResourcer   ComputeRoutersGetRequestGetAsDictrule_numbernatr   FindNatOrRaiser   FindRuleOrRaiseUpdateRuleMessagePatchComputeRoutersPatchRequestr+   r,   NameREGISTRYParsenameasync_r   UpdatedResourceformatr   Pollerr   WaitFor)selfargsholderr8   service
router_refrequest_typer-   r?   nat_namer@   ruleresultoperation_reftarget_router_refoperation_pollers                   r&   Run
Update.Run7   s   **4+<+<+>?F}}%%Hmm++33G2249I9IJJ44L[[<
(9(9(;<=F""KxxH

#
#F
5C&&s8D!!$f:]]++&&$$??$!	 	, 	#$F &&,,-!)) ''
 - M {{	
(//F3	4 m((..$!)) ''
 /  }}W@>>*11+HJ Jr)   r4   N)	__name__
__module____qualname____firstlineno____doc__classmethodr'   r[   __static_attributes__r4   r)   r&   r   r   !   s     /( (5Jr)   r   zO
        *{command}* is used to update a Rule in a Compute Engine NAT.
        a=          To drain connections established using address-1 and use address-2 for
        all new connections matching Rule 1 in NAT nat-1, run:

          $ {command} 1 --nat=nat1 --router=my-router --region=us-central1
            --source-nat-drain-ips=address-1
            --source-nat-active-ips=address-2
        )DESCRIPTIONEXAMPLESN)"ra   
__future__r   r   r   googlecloudsdk.api_lib.computer   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r   *googlecloudsdk.command_lib.compute.routersr   /googlecloudsdk.command_lib.compute.routers.natsr   5googlecloudsdk.command_lib.compute.routers.nats.rulesr   r   googlecloudsdk.corer   r   ReleaseTracksr6   ALPHABETAGAUpdateCommandr   detailed_helpr4   r)   r&   <module>rv      s    ; &  ' 7 < . ( E M F V M # ) T..33T5F5F5I5IHJT HJHJZ		 r)   