
                         l    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rS r	S r
S	 rS
 rS rS rg)z7'functions deploy' utilities for environment variables.    )absolute_import)division)unicode_literalsN)map_utilc                     U (       d  [         R                  " S5      eU R                  S5      (       a  [         R                  " S5      eSU ;   a  [         R                  " S5      eU $ )zValidator for environment variable keys.

Args:
  key: The environment variable key.

Returns:
  The environment variable key.
Raises:
  ArgumentTypeError: If the key is not a valid environment variable key.
z*Environment variable keys cannot be empty.	X_GOOGLE_zEnvironment variable keys that start with `X_GOOGLE_` are reserved for use by deployment tools and cannot be specified manually.=z-Environment variable keys cannot contain `=`.)argparseArgumentTypeError
startswithkeys    Clib/googlecloudsdk/command_lib/functions/v2/deploy/env_vars_util.pyEnvVarKeyTyper      sm     


$
$4  	^^K  

$
$	H  	CZ

$
$7  
*    c                     [        U [        R                  5      (       d/  [        R                  " SR                  U [        U 5      5      5      eU $ )Nz?Environment variable values must be strings. Found {} (type {}))
isinstancesix	text_typer
   r   formattypevalues    r   EnvVarValueTyper   5   s@    	E3==	)	)

$
$I	tE{	#  
,r   c                 D    [         R                  " U SS[        [        S9  g)z`Add flags for setting and removing environment variables.

Args:
  parser: The argument parser.
zenv-varszenvironment variables	long_namekey_type
value_typeN)r   AddUpdateMapFlagsr   r   parsers    r   AddUpdateEnvVarsFlagsr#   >   s!     ' r   c                 n    U S;   a%  [         R                  " SR                  U 5      5      e[        U 5      $ )a5  Validator for build environment variable keys.

All existing validations for environment variables are also applicable for
build environment variables.

Args:
  key: The build environment variable key.

Returns:
  The build environment variable key type.
Raises:
  ArgumentTypeError: If the key is not valid.
)GOOGLE_ENTRYPOINTGOOGLE_FUNCTION_TARGETGOOGLE_RUNTIMEGOOGLE_RUNTIME_VERSIONzF{} is reserved for internal use by GCF deployments and cannot be used.)r
   r   r   r   r   s    r   BuildEnvVarKeyTyper)   M   s?     	   
$
$P	  
s	r   c                     U $ )N r   s    r   BuildEnvVarValueTyper,   h   s    	,r   c                 D    [         R                  " U SS[        [        S9  g)zZAdd flags for managing build environment variables.

Args:
  parser: The argument parser.
zbuild-env-varszbuild environment variablesr   N)r   r    r)   r,   r!   s    r   AddBuildEnvVarsFlagsr.   l   s!     -!%r   )__doc__
__future__r   r   r   r
   $googlecloudsdk.command_lib.util.argsr   r   r   r   r#   r)   r,   r.   r+   r   r   <module>r2      s:    > &  '  9 
66r   