
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ ddlmZ ej                   ej                  ej                   j"                         G d dej$                                      Zej                   ej                  ej                   j(                         G d	 d
e                    Zej                   ej                  ej                   j,                         G d de                    Zy)z?Command for updating partner provider interconnect attachments.    )base_classes)client)base)flags)labels_utilc                   .    e Zd ZdZdZdZed        Zd Zy)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                     t        j                         | _        | j                  j                  |d       t        j                  |d       t        j
                  |d       t        j                  |       y )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ArgszUpdate.Args%   s_     	779 ###//w/O!!&59''?##F+    c                    t        j                  | j                               }| j                  j	                  ||j
                  t        j                  |j                              }t        j                  ||j                        }d }d }| j                  rt        j                  j                  |      }|j                         rs|j                         }|j                  j                   j                  j"                  }	|j%                  |	|j&                        j)                         }||j*                  }d }
d }d }| j,                  r't/        |dd       }
t/        |dd       }t/        |dd       }|j1                  |j2                  |j4                  |j6                  |j8                  |j:                  |||
||t/        |dd       t/        |dd       	      S )
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   Runz
Update.Run.   s   **4+<+<+>?F55GG"88G H N %;;v}} 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____doc__r1   r;   classmethodr   rG    r   r   r	   r	      s+     . %, ,6r   r	   c                   4     e Zd ZdZdZdZe fd       Z xZS )
UpdateBetar
   TFc                     t         t        |   |       t        j                  |       t        j                  |       t        j                  |       y N)superrO   r   r   AddUpdateLabelsFlagsr   "AddCandidateCloudRouterIpv6Address%AddCandidateCustomerRouterIpv6Addressr   r   	__class__s     r   r   zUpdateBeta.Argst   s<    	*c'$$V,77?::6Br   	rH   rI   rJ   rK   r1   r;   rL   r   __classcell__rW   s   @r   rO   rO   g   s)     . %C Cr   rO   c                   4     e Zd ZdZdZdZe fd       Z xZS )UpdateAlphar
   Tc                     t         t        |   |       t        j                  |       t        j
                  |       t        j                  |       y rQ   )rR   r\   r   r   AddCandidateIpv6SubnetsAddCloudRouterIpv6InterfaceId AddCustomerRouterIpv6InterfaceIdrV   s     r   r   zUpdateAlpha.Args   s<    	+s (,,V4226:55f=r   rX   rZ   s   @r   r\   r\   |   s'     . $> >r   r\   N)rK   googlecloudsdk.api_lib.computer   8googlecloudsdk.api_lib.compute.interconnects.attachmentsr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r.   <googlecloudsdk.command_lib.compute.interconnects.attachmentsr   $googlecloudsdk.command_lib.util.argsr   UniverseCompatibleReleaseTracksr+   GAUpdateCommandr	   BETArO   ALPHAr\   rM   r   r   <module>rm      s    F 7 K ( E b < D%%(()IT I * IX D%%**+C C , C& D%%++,>* > - >r   