
                            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  \R                  \R                  " \R                   R"                  5       " S S\R$                  5      5       5       r\R                  \R                  " \R                   R(                  5       " S	 S
\5      5       5       r\R                  \R                  " \R                   R,                  5       " S S\5      5       5       rg)z?Command for updating partner provider interconnect attachments.    )base_classes)client)base)flags)labels_utilc                   6    \ rS rSrSrSrSr\S 5       rS r	Sr
g)Update     Update a Compute Engine partner provider interconnect attachment.

*{command}* is used to update partner provider interconnect attachments. An
interconnect attachment binds the underlying connectivity of an Interconnect
to a path into and out of the customer's cloud network.
Fc                     [         R                  " 5       U l        U R                  R                  USS9  [         R                  " USS9  [         R
                  " USS9  [         R                  " U5        g )Npatch)operation_typeF)required)attachment_flagsInterconnectAttachmentArgumentINTERCONNECT_ATTACHMENT_ARGAddArgumentAddBandwidthAddPartnerMetadataAddDescription)clsparsers     @lib/surface/compute/interconnects/attachments/provider/update.pyArgsUpdate.Args%   s_     	779 ###//w/O!!&59''?##F+    c                    [         R                  " U R                  5       5      nU R                  R	                  UUR
                  [        R                  " UR                  5      S9n[        R                  " X2R                  S9nS nS nU R                  (       a  [        R                  R                  U5      nUR                  5       (       ap  UR                  5       nUR                  R                   R                  R"                  n	UR%                  XR&                  S9R)                  5       nUb  UR*                  nS n
S nS nU R,                  (       a'  [/        USS 5      n
[/        USS 5      n[/        USS 5      nUR1                  UR2                  UR4                  UR6                  UR8                  UR:                  UUU
UU[/        USS 5      [/        USS 5      S	9$ )
N)scope_lister)compute_client)labelscandidate_ipv6_subnetscloud_router_ipv6_interface_id!customer_router_ipv6_interface_id#candidate_cloud_router_ipv6_address&candidate_customer_router_ipv6_address)description	bandwidthpartner_namepartner_interconnectpartner_portal_urlr    label_fingerprintr!   r"   r#   r$   r%   )r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   InterconnectAttachment_support_labelr   DiffFromUpdateArgsMayHaveUpdatesDescribemessagesLabelsValueApplyr    	GetOrNonelabelFingerprint_support_partner_ipv6_byoipgetattrPatchr&   r'   r(   partner_interconnect_namer*   )selfargsholderattachment_refinterconnect_attachmentr    r+   labels_diffold_attachment
labels_clsr!   r"   r#   s                r   Run
Update.Run.   s   **4+<+<+>?F55GG"88G H N %;;}} F$$33D9k		#	#	%	%099;]]++BBNN
""44 # 

)+ 	 ,==
!%)"(,%''&t-EtL'.
0$($ +2
3T+' #(($$..&&!;;22+5'E*K,37-
 07:D0
 )  r    N)__name__
__module____qualname____firstlineno____doc__r3   r=   classmethodr   rI   __static_attributes__rK   r   r   r	   r	      s+     . %, ,6r   r	   c                   >   ^  \ rS rSrSrSrSr\U 4S j5       rSr	U =r
$ )
UpdateBetag   r   TFc                    > [         TU ]  U5        [        R                  " U5        [        R
                  " U5        [        R                  " U5        g N)superr   r   AddUpdateLabelsFlagsr   "AddCandidateCloudRouterIpv6Address%AddCandidateCustomerRouterIpv6Addressr   r   	__class__s     r   r   UpdateBeta.Argst   s9    	GL$$V,77?::6Br   rK   rL   rM   rN   rO   rP   r3   r=   rQ   r   rR   __classcell__r]   s   @r   rT   rT   g   s)     . %C Cr   rT   c                   >   ^  \ rS rSrSrSrSr\U 4S j5       rSr	U =r
$ )UpdateAlpha|   r   Tc                    > [         TU ]  U5        [        R                  " U5        [        R                  " U5        [        R
                  " U5        g rW   )rX   r   r   AddCandidateIpv6SubnetsAddCloudRouterIpv6InterfaceId AddCustomerRouterIpv6InterfaceIdr\   s     r   r   UpdateAlpha.Args   s9    	GL,,V4226:55f=r   rK   r_   ra   s   @r   rc   rc   |   s'     . $> >r   rc   N)rP   googlecloudsdk.api_lib.computer   8googlecloudsdk.api_lib.compute.interconnects.attachmentsr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r0   <googlecloudsdk.command_lib.compute.interconnects.attachmentsr   $googlecloudsdk.command_lib.util.argsr   UniverseCompatibleReleaseTracksr-   GAUpdateCommandr	   BETArT   ALPHArc   rK   r   r   <module>rv      s    F 7 K ( E b < D%%(()IT I * IX D%%**+C C , C& D%%++,>* > - >r   