
                            S r SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJ	r
  SSKJr  S	S
S.rSSS.rSSSS.r\R                   \R"                  " \R$                  R&                  5       " S S\
R(                  5      5       5       rS#S jrS rS rS rS$S jrS rS rS%S jrS rS$S jrS r S$S  jr!S$S! jr"S$S" jr#g)&zEFlags and helpers for the compute interconnects wire groups commands.    )absolute_import)division)unicode_literalsN)base)
completers)flagsziConfigures a separate unmetered bandwidth allocation (and associated charges) for each wire in the group.a  Configures one unmetered bandwidth allocation for the wire group. The unmetered bandwidth is divided equally across each wire in the group, but dynamic throttling reallocates unused unmetered bandwidth from unused or underused wires to other wires in the group.)ALLOCATE_PER_WIRESHARED_WITH_WIRE_GROUPzThe lowest service class.zThe highest service class.)BRONZEGOLDz9Single wire type wire groups must have only one VLAN tag.z7Redundant type wire groups must have only one VLAN tag.zBox and cross type wire groups must have two VLAN tags. The first is for the same-zone pseudowire, and the second is for the cross-zone pseudowire.)WIRE	REDUNDANTBOX_AND_CROSSc                   (   ^  \ rS rSrU 4S jrSrU =r$ )WireGroupsCompleter9   c                 4   > [         [        U ]
  " SSSS.UD6  g )Ncompute.wireGroupsz,compute interconnects wire-groups list --uri)
collectionlist_command )superr   __init__)selfkwargs	__class__s     Ilib/googlecloudsdk/command_lib/compute/interconnects/wire_groups/flags.pyr   WireGroupsCompleter.__init__=   s(    	
t- 'C     r   )__name__
__module____qualname____firstlineno__r   __static_attributes____classcell__)r   s   @r   r   r   9   s     r   r   c                 :    [         R                  " S[        UU SS9$ )Nz
wire groupr   )resource_name	completerpluralrequiredglobal_collection)compute_flagsResourceArgumentr   )r*   r)   s     r   WireGroupArgumentr.   E   s$    		'	' #,
 r   c                 &    U R                  SSSS9  g)z<Adds cross-site-network flag to the argparse.ArgumentParser.z--cross-site-networkz*The cross site network for the wire group.T)helpr*   Nadd_argumentparsers    r   AddCrossSiteNetworkr5   O   s    7  r   c                 $    U R                  SSS9  g)z5Adds description flag to the argparse.ArgumentParser.z--descriptionz4An optional, textual description for the wire group.)r0   Nr1   r3   s    r   AddDescriptionr7   X   s    A  r   c                 V    U R                  S[        [        R                  " S5      S9  g)z.Adds type flag to the argparse.ArgumentParser.z--typezThe type for the wire group.choicesr0   N)r2   _WIRE_GROUP_TYPEtextwrapdedentr3   s    r   AddTyper>   `   s(    ??9:  r   c                 0    U R                  SU[        SS9  g)z=Adds bandwidth-unmetered flag to the argparse.ArgumentParser.z--bandwidth-unmeteredz>The amount of unmetered bandwidth to assign to the wire group.)r*   typer0   Nr2   intr4   r*   s     r   AddBandwidthUnmeteredrD   i   s!    K	  r   c                 .    U R                  S[        SS9  g)z;Adds bandwidth-metered flag to the argparse.ArgumentParser.z--bandwidth-meteredz<The amount of metered bandwidth to assign to the wire group.)r@   r0   NrA   r3   s    r   AddBandwidthMeteredrF   s   s    I  r   c                 ,    U R                  SSSS.SS9  g)z8Adds fault-response flag to the argparse.ArgumentParser.z--fault-responseNonezDisable port)NONEDISABLE_PORTz&The fault response for the wire group.r9   Nr1   r3   s    r   AddFaultResponserK   |   s#    ~>3  r   c                     U(       a  [         R                  " S5      nO[         R                  " S5      nU R                  SSSUS9  g)z7Adds admin-enabled flag to the argparse.ArgumentParser.z      Administrative status of the wire group. When this is enabled, the wire
      group is operational and will carry traffic. Use --no-admin-enabled to
      disable it.
      z      Administrative status of the wire group. If not provided on creation,
      defaults to enabled. When this is enabled, the wire group is
      operational and will carry traffic. Use --no-admin-enabled to disable
      it.
      z--admin-enabled
store_trueNactiondefaultr0   r<   r=   r2   )r4   update	help_texts      r   AddAdminEnabledrT      sN     !
 I  !
 I 		  r   c                 V    U R                  S[        [        R                  " S5      S9  g)z?Adds network-service-class flag to the argparse.ArgumentParser.z--network-service-classz-The network service class for the wire group.r9   N)r2   _NETWORK_SERVICE_CLASS_CHOICESr<   r=   r3   s    r   AddNetworkServiceClassrW      s(    ,??JK  r   c                 0    U R                  S[        SUS9  g)z>Adds bandwidth-allocation flag to the argparse.ArgumentParser.z--bandwidth-allocationz,The bandwidth allocation for the wire group.)r:   r0   r*   N)r2   _BANDWIDTH_ALLOCATION_CHOICESrC   s     r   AddBandwidthAllocationrZ      s!    +9	  r   c                 T    [         R                  " S5      nU R                  SSSUS9  g)z7Adds validate-only flag to the argparse.ArgumentParser.z=    Validate the new configuration, but don't update it.
    z--validate-onlyrM   NrN   rQ   )r4   rS   s     r   AddValidateOnlyr\      s6    oo  	) 		  r   c                 &    U R                  SUSS9  g)z8Adds endpoint-label flag to the argparse.ArgumentParser.z--endpoint-labelz&The endpoint label for the wire group.r*   r0   Nr1   rC   s     r   AddEndpointLabelr_      s    3  r   c                 &    U R                  SUSS9  g)z<Adds interconnect-label flag to the argparse.ArgumentParser.z--interconnect-labelz3The interconnect label for the wire group endpoint.r^   Nr1   rC   s     r   AddInterconnectLabelra      s    @  r   c                 &    U R                  SUSS9  g)z3Adds vlan-tags flag to the argparse.ArgumentParser.z--vlan-tagsz>The vlan tags for the interconnect on the wire group endpoint.r^   Nr1   rC   s     r   AddVlanTagsrc      s    K  r   )TF)T)F)$__doc__
__future__r   r   r   r<   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   compute_completersr   r,   rY   rV   r;   UniverseCompatibleReleaseTracksReleaseTrackALPHAGlobalListCommandCompleterr   r.   r5   r7   r>   rD   rF   rK   rT   rW   rZ   r\   r_   ra   rc   r   r   r   <module>rn      s    L &  '  ( O E
	0	B!  *("  HJ		  D%%++,,GG  - .
r   