
                            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\R                   5      r\R$                  " \R&                  R(                  5       " S S\R*                  5      5       r\R$                  " \R&                  R.                  5       " S S\5      5       r\R$                  " \R&                  R2                  5       " S S\5      5       rSS0\l        g)z=Command for removing a BGP peer from a Compute Engine router.    )absolute_import)division)unicode_literals)encoding)base_classes)arg_parsers)base)flags)
exceptionsc                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )PeerNotFoundError   z Raised when a peer is not found.c                    > SSR                  S/[        U5      -  5      -   [        U5      -  S-   n[        [        U ]  U5        g )Nzpeer z, z%sz
 not found)joinlentuplesuperr   __init__)self	name_list	error_msg	__class__s      .lib/surface/compute/routers/remove_bgp_peer.pyr   PeerNotFoundError.__init__!   sL    499	Y! !$))$457CDI	
T+I6     )__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classcell__)r   s   @r   r   r      s    (7 7r   r   c                   Z    \ rS rSrSrSr\S 5       r\S 5       rS r	S r
S rS	 rS
 rSrg)RemoveBgpPeer'   znRemove a BGP peer from a Compute Engine router.

*{command}* removes a BGP peer from a Compute Engine router.
Nc                     [         R                  " 5       U l        U R                  R                  USS9  UR	                  SS9nUR                  SSS9  UR                  S[        R                  " 5       S	S
S9  g )Nupdate)operation_typeT)requiredz--peer-namez#The name of the peer being removed.)helpz--peer-names	PEER_NAMEz*The list of names for peers being removed.)typemetavarr+   )r
   RouterArgument
ROUTER_ARGAddArgumentadd_mutually_exclusive_groupadd_argumentr   ArgList)clsparserbgp_peer_parsers      r   _ArgsRemoveBgpPeer._Args0   s~    ))+CNNNvh?9949HO  A ! C    "9	 ! ;r   c                 &    U R                  U5        g Nr8   r5   r6   s     r   ArgsRemoveBgpPeer.Args?       IIfr   c                     UR                   R                  SUR                  R                  UR	                  5       UR
                  UR                  S94$ )NGet)routerregionproject)apitools_clientroutersmessagesComputeRoutersGetRequestNamerD   rE   )r   client
router_refs      r   GetGetRequestRemoveBgpPeer.GetGetRequestC   sP    ""**EOO44!(!(("** 5 ,- -r   c           	          UR                   R                  SUR                  R                  UR	                  5       UUR
                  UR                  S94$ )NPatch)rC   routerResourcerD   rE   )rF   rG   rH   ComputeRoutersPatchRequestrJ   rD   rE   )r   rK   rL   replacements       r   GetSetRequestRemoveBgpPeer.GetSetRequestJ   sS    ""**GOO66!(*!(("**	 7 ,- -r   c                    [         R                  " U5      nUR                  (       a  UR                  O/ nUUR                  (       a  UR                  /O/ -   n/ n[         R                  " U5      n[         R                  " U5      n[	        5       nUR
                   H  n	U	R                  U;   d  M  U	n
U
R                  b  UR                  U
R                  5        UR
                  R                  U
5        UR
                  (       d  UR                  S5        UR                  U
R                  5        M     UR                  (       aV  UR                   Vs/ s H  nUR                  U;  d  M  UPM     snUl        UR                  (       d  UR                  S5        [        [	        U5      [	        U5      -
  5      nU(       a  [        U5      eU$ s  snf )zBMutate the router and record any cleared_fields for Patch request.bgpPeersmd5AuthenticationKeys)r   CopyProtoMessage
peer_names	peer_namesetrW   namemd5AuthenticationKeyNameaddremoveappendrX   listr   )r   argsexistingcleared_fieldsrS   input_remove_listactual_remove_listexisting_router!md5_authentication_keys_to_removeppeermd5_keynot_found_peerss                r   ModifyRemoveBgpPeer.ModifyR   s   ++H5K+/??)04 /3nn-=DFH ++H5K//9O ),%%%	
$	$((4
+
/
/0M0M
N##D)##




+!!$)), & ((!,!B!B+!Bg\\!BB !B+k' ..56301C8J4KKLOo..+s   G/Gc                    [         R                  " U R                  5       5      nUR                  nU R                  R                  XR                  5      nU R                  X45      nUR                  U/5      n/ nU R                  XS   U5      nUR                  R                  U5         UR                  U R                  X4U5      /5      n	S S S 5        U	$ ! , (       d  f       W	$ = f)Nr   )r   ComputeApiHolderReleaseTrackrK   r0   ResolveAsResource	resourcesrM   MakeRequestsrn   rF   IncludeFieldsrT   )
r   rc   holderrK   rL   get_requestobjectsre   
new_objectresults
             r   _RunRemoveBgpPeer._Runy   s    **4+<+<+>?F]]F2249I9IJJ$$V8K!!;-0G NT1:~>J				-	-n	=""f*=
>@f 
> M	 
>	= Ms   +#C
C'c                 $    U R                  U5      $ r;   r|   r   rc   s     r   RunRemoveBgpPeer.Run       99T?r   r   )r   r   r   r    r!   r0   classmethodr8   r>   rM   rT   rn   r|   r   r"   r   r   r   r%   r%   '   sN    
 *; ;  --%N&r   r%   c                   2    \ rS rSrSrSr\S 5       rS rSr	g)RemoveBgpPeerBeta   /Remove a BGP peer from a Compute Engine router.Nc                 &    U R                  U5        g r;   r<   r=   s     r   r>   RemoveBgpPeerBeta.Args   r@   r   c                 $    U R                  U5      $ r;   r   r   s     r   r   RemoveBgpPeerBeta.Run   r   r   r   
r   r   r   r    r!   r0   r   r>   r   r"   r   r   r   r   r      !    7* r   r   c                   2    \ rS rSrSrSr\S 5       rS rSr	g)RemoveBgpPeerAlpha   r   Nc                 &    U R                  U5        g r;   r<   r=   s     r   r>   RemoveBgpPeerAlpha.Args   r@   r   c                 $    U R                  U5      $ r;   r   r   s     r   r   RemoveBgpPeerAlpha.Run   r   r   r   r   r   r   r   r   r      r   r   r   DESCRIPTIONzN
        *{command}* removes a BGP peer from a Compute Engine router.
        N)r!   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r	   *googlecloudsdk.command_lib.compute.routersr
   googlecloudsdk.corer   Errorr   ReleaseTracksrr   GAUpdateCommandr%   BETAr   ALPHAr   detailed_helpr   r   r   <module>r      s    D &  ' % 7 / ( < *7
(( 7 D%%(()eD&& e *eP D%%**+
 
 ,
 D%%++,
* 
 -
 	 r   