
                            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	S
.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&                  R2                  5       " S S\5      5       5       rg)z!Command for creating wire groups.    )base_classes)client)base)scope)flags)
propertiesa          *{command}* is used to create wire groups. A wire group represents a
        group of redundant wires between interconnects in two different metros.
        Each WireGroup belongs to a CrossSiteNetwork.

        For an example, refer to the *EXAMPLES* section below.
        z        To create a wire group, run:

          $ {command} example-wg               --cross-site-network=example-csn
              --bandwidth-unmetered=1
        )DESCRIPTIONEXAMPLESc                   @    \ rS rSrSr\rSrSr\	S 5       r
S rS rSrg)Create-   Create a Compute Engine wire group.

*{command}* is used to create wire groups. A wire group represents a
group of redundant wires between interconnects in two different metros.
Each WireGroup belongs to a CrossSiteNetwork.
Nc                    [         R                  " 5       U l        U R                  R                  U5        [        R
                  " SS9U l        U R                  R                  USS9  [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        g )NF)pluralcreate)operation_type)cross_site_network_flags(CrossSiteNetworkArgumentForOtherResourceCROSS_SITE_NETWORK_ARGAddArgumentr   WireGroupArgumentWIRE_GROUP_ARGAddDescriptionAddBandwidthUnmeteredAddBandwidthAllocationAddFaultResponseAddAdminEnabledAddValidateOnly)clsparsers     7lib/surface/compute/interconnects/wire_groups/create.pyArgsCreate.Args=   s     	!IIK  **6200>C""6("C	 	'	  (	6"	&!	&!    c                     g)Nzcompute.wireGroups )selfs    r!   
CollectionCreate.CollectionM   s    r$   c                    [         R                  " U R                  5       5      nU R                  R	                  UUR
                  [        R                  R                  SUR                  0S9n[        R                  R                  R                  R                  5       n[        R                   " X4UR                  UR                  S9nUR#                  UR$                  ['        USS 5      UR(                  ['        USS 5      UR*                  UR,                  ['        USS 5      ['        USS 5      UR.                  S9	$ )	NcrossSiteNetwork)default_scopeadditional_params)compute_clienttypebandwidth_meterednetwork_service_classbandwidth_allocation)	descriptionwire_group_typebandwidth_unmeteredr0   fault_responseadmin_enabledr1   r2   validate_only)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALcross_site_networkr   VALUEScoreproject	GetOrFailr   	WireGroupr   r3   getattrr5   r6   r7   r8   )r'   argsholderrefrC   
wire_groups         r!   Run
Create.RunP   s   **4+<+<+>?F



/
/#--44-t/F/FG	 0 C $$,,668G!!d--fmmJ $$fd3 44!$(;TB**((%d,CTJ$T+A4H((   r$   r&   )__name__
__module____qualname____firstlineno____doc___DETAILED_HELPdetailed_helpr   r   classmethodr"   r(   rK   __static_attributes__r&   r$   r!   r   r   -   s5     !-." " r$   r   c                   6   ^  \ rS rSrSr\U 4S j5       rSrU =r$ )
CreateBetal   z#Create a Compute Engine wire group.c                 P   > [         TU ]  U5        [        R                  " U5        g N)superr"   r   AddTyper   r    	__class__s     r!   r"   CreateBeta.Argsq   s    	GL	MM&r$   r&   	rM   rN   rO   rP   rQ   rT   r"   rU   __classcell__r^   s   @r!   rW   rW   l   s     , r$   rW   c                   6   ^  \ rS rSrSr\U 4S j5       rSrU =r$ )CreateAlphaw   r   c                 |   > [         TU ]  U5        [        R                  " U5        [        R                  " U5        g rZ   )r[   r"   r   AddBandwidthMeteredAddNetworkServiceClassr]   s     r!   r"   CreateAlpha.Args   s+    	GL	f%	  (r$   r&   r`   rb   s   @r!   rd   rd   w   s     ) )r$   rd   N)rQ   googlecloudsdk.api_lib.computer   8googlecloudsdk.api_lib.compute.interconnects.wire_groupsr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r=   Dgooglecloudsdk.command_lib.compute.interconnects.cross_site_networksr   r   <googlecloudsdk.command_lib.compute.interconnects.wire_groupsgooglecloudsdk.corer   rR   UniverseCompatibleReleaseTracksr:   GACreateCommandr   BETArW   ALPHArd   r&   r$   r!   <module>rw      s    ( 8 K ( E r N *$ D%%(():T : * :z D%%**+  ,  D%%++,)* ) - )r$   