
    8                     0   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
KJr  SSS.r\
R*                  \
R,                  " \
R.                  R0                  5       " S S\
R2                  5      5       5       r\
R*                  \
R,                  " \
R.                  R6                  5       " S S\5      5       5       r\
R*                  \
R,                  " \
R.                  R:                  5       " S S\5      5       5       rg)z!Command for creating wire groups.    )absolute_import)division)unicode_literals)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)Create0   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.CollectionP   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_unmeteredr3   fault_responseadmin_enabledr4   r5   validate_only)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALcross_site_networkr   VALUEScoreproject	GetOrFailr   	WireGroupr   r6   getattrr8   r9   r:   r;   )r*   argsholderrefrF   
wire_groups         r$   Run
Create.RunS   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+   rN   __static_attributes__r)   r'   r$   r   r   0   s5     !-." " r'   r   c                   6   ^  \ rS rSrSr\U 4S j5       rSrU =r$ )
CreateBetao   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.Argst   s    	GL	MM&r'   r)   	rP   rQ   rR   rS   rT   rW   r%   rX   __classcell__ra   s   @r$   rZ   rZ   o   s     , r'   rZ   c                   6   ^  \ rS rSrSr\U 4S j5       rSrU =r$ )CreateAlphaz   r   c                 |   > [         TU ]  U5        [        R                  " U5        [        R                  " U5        g r]   )r^   r%   r
   AddBandwidthMeteredAddNetworkServiceClassr`   s     r$   r%   CreateAlpha.Args   s+    	GL	f%	  (r'   r)   rc   re   s   @r$   rg   rg   z   s     ) )r'   rg   N)rT   
__future__r   r   r   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   rU   UniverseCompatibleReleaseTracksr=   GACreateCommandr   BETArZ   ALPHArg   r)   r'   r$   <module>r{      s    ( &  ' 7 K ( E r N *$ D%%(():T : * :z D%%**+  ,  D%%++,)* ) - )r'   