
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ d
 Zd Zdededeej(                  ej(                  f   fdZdedej(                  fdZdedej(                  fdZy)zUtils for Edge Cache commands.    )absolute_import)division)unicode_literals)Union)apis)	resources)networkservices_v1_messages)!networkservices_v1alpha1_messagesc                       y)zSet default location to global.global r       1lib/googlecloudsdk/command_lib/edge_cache/util.pySetLocationAsGlobalr      s    	r   c                 8   |j                   j                  d      d   }t        j                  j	                  |j
                  |j                  xs ||j                  xs
 t               |j                  dd      j                         |j                  _        |S )a}  Parse the provided failover origin to a relative name.

  Relative name includes defaults (or overridden values) for project & location.
  Location defaults to 'global'.

  Args:
    unused_ref: A string representing the operation reference. Unused and may be
      None.
    args: The argparse namespace.
    request: The request to modify.

  Returns:
    The updated request.
  /   )
projectsIdlocationsIdedgeCacheOriginsIdz3networkservices.projects.locations.edgeCacheOrigins)params
collection)parentsplitr   REGISTRYParsefailover_originprojectlocationr   edgeCacheOriginIdRelativeNameedgeCacheOriginfailoverOrigin)
unused_refargsrequestr   s       r   SetFailoverOriginRelativeNamer'   !   s    " NN  %a('+4+=+=+C+C
/?*=*? ' 9 9
 G ,D , LN 
( 
.r   api_versionregionreturnc                     |syt        j                  d|       }|j                  j                  }|j                  |j	                  |j                               g      S )a7  Get a FlexShieldingOptions message from a specified FlexShieldingRegion.

  Args:
    api_version: The API version to use, e.g. 'v1' or 'v1alpha1'.
    region: The FlexShieldingRegion to use, e.g. 'me_central1', or empty string.

  Returns:
    A FlexShieldingOptions message, or None if the region is empty.
  Nnetworkservices)flexShieldingRegions)r   GetMessagesModuleFlexShieldingOptions,FlexShieldingRegionsValueListEntryValuesEnumlookup_by_nameupper)r(   r)   messagesregions_enums       r   GetFlexShieldingr5   @   sd     
##$5{C(##PP  
	&	&

%
%flln
5 
' 
 r   c                     t        d|       S )zGet a GA FlexShieldingOptions message from a specified FlexShieldingRegion.

  Args:
    region: The FlexShieldingRegion to use, e.g. 'me_central1', or empty string.

  Returns:
    A FlexShieldingOptions message, or None if the region is empty.
  v1r5   r)   s    r   GetFlexShieldingGAr:   [   s     
$	''r   c                     t        d|       S )zGet an alpha FlexShieldingOptions from a specified FlexShieldingRegion.

  Args:
    region: The FlexShieldingRegion to use, e.g. 'me_central1', or empty string.

  Returns:
    A FlexShieldingOptions message, or None if the region is empty.
  v1alpha1r8   r9   s    r   GetFlexShieldingAlphar=   g   s     
*f	--r   N)__doc__
__future__r   r   r   typingr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer   8googlecloudsdk.generated_clients.apis.networkservices.v1r	   v1_msgs>googlecloudsdk.generated_clients.apis.networkservices.v1alpha1r
   v1alpha1_msgsr   r'   strr/   r5   r:   r=   r   r   r   <module>rH      s    % &  '  , ) k }
>!
7'')K)KKL6	(s 	(w'C'C 	(	.# 	.-*L*L 	.r   