
                            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 creating partner provider interconnect attachments.    )base_classes)client)base)flagsc                   >    \ rS rSrSrSrSrSrSr\	S 5       r
S rSrg)Create   c  Create a Compute Engine partner provider interconnect attachment.

*{command}* is used to create 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. Partner provider
attachments can only be created by approved network partners.
NFc                 `   [         R                  " S5      U l        U R                  R                  U5        [        R
                  " 5       U l        U R                  R                  USS9  [        R                  " USS9  [        R                  " U5        [        R                  " U5        [        R                  " USS9  [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        g )Nz0The interconnect for the interconnect attachmentcreate)operation_typeT)required)interconnect_flags$InterconnectArgumentForOtherResourceINTERCONNECT_ARGAddArgumentattachment_flagsInterconnectAttachmentArgumentINTERCONNECT_ATTACHMENT_ARGAddBandwidthAddVlanAddPartnerAsnAddPartnerMetadataAddPairingKeyAddDescriptionAddCandidateSubnetsAddSubnetLengthAddResourceManagerTags)clsparsers     @lib/surface/compute/interconnects/attachments/provider/create.pyArgsCreate.Args(   s     	??>	@  $$V, 	779 ###//x/P!!&48V$""6*''>""6*##F+((0$$V,++F3    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UR                  b%  U R                  R	                  XR
                  5      nS nS nS nU R                  (       a&  UR                  n[        USS 5      n[        USS 5      nUR                  UR                   UUR"                  SUR$                  UR&                  UR(                  UR*                  UR,                  UR.                  UR0                  [        USS 5      [        USS 5      UUU[        USS 5      [        US	S 5      [        US
S 5      [        USS 5      UR2                  S9$ )N)scope_lister)compute_clientcloud_router_ipv6_interface_id!customer_router_ipv6_interface_idPARTNER_PROVIDERsubnet_lengthdry_run!candidate_cloud_router_ip_address$candidate_customer_router_ip_address#candidate_cloud_router_ipv6_address&candidate_customer_router_ipv6_address)descriptioninterconnectvlan_tag_802_1qattachment_type	bandwidthpairing_keycandidate_subnetspartner_asnpartner_namepartner_interconnectpartner_portal_urlr+   validate_onlycandidate_ipv6_subnetsr(   r)   r-   r.   r/   r0   resource_manager_tags)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   InterconnectAttachmentr2   r   _support_partner_ipv6_byoipr=   getattrr   r1   vlanr5   r6   r7   r8   r9   partner_interconnect_namer;   r>   )	selfargsholderattachment_refinterconnect_attachmentinterconnect_refr=   r(   r)   s	            r!   Run
Create.Run>   s   **4+<+<+>?F55GG"88G H IN
 %;;}}6 $..@@
  " "%)"(,%''#::'.
0$($ +2
3T+' #))$$%		*..$$00$$&&!;;22dOT:dIt45'E*K*15t+
 .58$.
 -47-
 07:D0
 #88; *  r$    )__name__
__module____qualname____firstlineno____doc__r   r   
ROUTER_ARGrF   classmethodr"   rP   __static_attributes__rR   r$   r!   r   r      s7     !%* %4 4*9r$   r   c                   6   ^  \ rS rSrSr\U 4S j5       rSrU =r$ )
CreateBetaz   r
   c                    > [         TU ]  U5        [        R                  " U5        [        R                  " U5        [        R
                  " U5        [        R                  " U5        g N)superr"   r    AddCandidateCloudRouterIpAddress#AddCandidateCustomerRouterIpAddress"AddCandidateCloudRouterIpv6Address%AddCandidateCustomerRouterIpv6Addressr   r    	__class__s     r!   r"   CreateBeta.Args   sG    	GL55f=88@77?::6Br$   rR   )	rS   rT   rU   rV   rW   rY   r"   rZ   __classcell__rf   s   @r!   r\   r\   z   s     C Cr$   r\   c                   :   ^  \ rS rSrSrSr\U 4S j5       rSrU =r	$ )CreateAlpha   r
   Tc                    > [         TU ]  U5        [        R                  " U5        [        R                  " U5        [        R
                  " U5        [        R                  " U5        g r_   )r`   r"   r   	AddDryRunAddCandidateIpv6SubnetsAddCloudRouterIpv6InterfaceId AddCustomerRouterIpv6InterfaceIdre   s     r!   r"   CreateAlpha.Args   sG    	GLv&,,V4226:55f=r$   rR   )
rS   rT   rU   rV   rW   rF   rY   r"   rZ   rh   ri   s   @r!   rk   rk      s"     !%> >r$   rk   N)rW   googlecloudsdk.api_lib.computer   8googlecloudsdk.api_lib.compute.interconnects.attachmentsr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   rC   0googlecloudsdk.command_lib.compute.interconnectsr   <googlecloudsdk.command_lib.compute.interconnects.attachmentsr   UniverseCompatibleReleaseTracksr@   GACreateCommandr   BETAr\   ALPHArk   rR   r$   r!   <module>r      s    F 7 K ( E X b D%%(()\T \ * \~ D%%**+C C , C$ D%%++,>* > - >r$   