
                         "   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	KJr  SS
KJr  SSKJr  \" / SQ5      rS rS r\R,                  \R.                  R0                  4S j5       r\R.                  R0                  4S jrg)z/Utilities for operating on different endpoints.    )absolute_import)division)unicode_literalsN)util)apis)base)
exceptions)
properties)parse)z
asia-east2zasia-northeast2zasia-south1zasia-southeast1zasia-southeast2zaustralia-southeast1zeurope-north1zeurope-west1zeurope-west2zeurope-west3zeurope-west4zeurope-west6zeurope-west8zeurope-west9zme-central2znorthamerica-northeast1zsouthamerica-east1zus-central1zus-east4zus-east7zus-west1c           
          U [         ;  aZ  [        [         5      nUR                  5         [        R                  " SSR                  U SR                  S U 5       5      S95      eg )Nz
--locationzJ{bad_location} is not a valid location. Allowed values: [{location_list}].z, c              3   D   #    U  H  nS R                  U5      v   M     g7f)z'{}'N)format).0rs     Glib/googlecloudsdk/command_lib/container/gkemulticloud/endpoint_util.py	<genexpr>$_ValidateLocation.<locals>.<genexpr>A   s     #HiFMM!$4$4is    )bad_locationlocation_list)_VALID_LOCATIONSlistsortr	   InvalidArgumentExceptionr   join)location	locationss     r   _ValidateLocationr   8   sd    %%%&INN

-
-	$f!))#Hi#HH % 
  &    c                     [         R                  " U 5      u  p#pEpgSR                  X5      n[         R                  " X#XEXg45      $ )Nz{}-{})r   urlparser   
urlunparse)endpointr   schemenetlocpathparamsqueryfragments           r   _AppendLocationr)   F   s=    27..2J/&$>>(+&			64I	JJr   c              #   0  #    [         R                  R                  R                  R	                  5       n U(       dY  U (       d  [        S5      e[        U 5        [        XS9n[         R                  R                  R                  R                  U5        Sv   U(       d4  [         R                  R                  R                  R                  U5        gg! U(       d4  [         R                  R                  R                  R                  U5        f f = f7f)zContext manager to override the GKE Multi-cloud endpoint temporarily.

Args:
  location: str, location to use for GKE Multi-cloud.
  track: calliope_base.ReleaseTrack, Release track of the endpoint.

Yields:
  None.
zA location must be specified.)trackN)	r
   VALUESapi_endpoint_overridesgkemulticloudGet
ValueErrorr   _GetEffectiveEndpointSet)r   r+   original_epregional_eps       r   GkemulticloudEndpointOverrider5   L   s      !!88FFJJL+
N899!)(@k..<<@@M	..<<@@M ;..<<@@M s   3DA$C <D=DDc                     [         R                  " [        R                  [        R                  " U5      5      n[        X 5      $ )z*Returns regional GKE Multi-cloud Endpoint.)r   GetEffectiveApiEndpointapi_utilMODULE_NAMEGetApiVersionForTrackr)   )r   r+   r"   s      r   r1   r1   f   s5    ))H::5A( 
	,,r   )__doc__
__future__r   r   r   
contextlib.googlecloudsdk.api_lib.container.gkemulticloudr   r8   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   r	   googlecloudsdk.corer
   six.moves.urllibr   	frozensetr   r   r)   contextmanagerReleaseTrackGAr5   r1    r   r   <module>rH      s    6 &  '  K , ( . * "    2K 262C2C2F2F N N2 +/*;*;*>*> -r   