
    (
                         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	 Z G d
 dej                        Zd Zd Zd Zd Zy)z&Utils for Service Extensions commands.    )absolute_import)division)unicode_literals)encoding)util)apis)arg_parsersc                       y)zSet default location to global.global r       9lib/googlecloudsdk/command_lib/service_extensions/util.pySetLocationAsGlobalr      s    	r   c                        e Zd Z fdZ xZS )	LogConfigc                     t         t        |   t        j                         t        j
                  dd      t        |      ddg       y )Ng        g      ?)enablezsample-ratezmin-log-levelr   )specrequired_keys)superr   __init__r	   
ArgBooleanBoundedFloat_GetLogLevelValidator)selfapi_version	__class__s     r   r   zLogConfig.__init__!   sG    	)T#!,,.&33C=2;?

  j $ r   )__name__
__module____qualname__r   __classcell__)r   s   @r   r   r      s     r   r   c                    t        j                  d|       }|j                  j                  j	                         j                         t        j                  fddj                  dj                              d       S )Nnetworkservicesc                     | v S Nr   )klog_level_valuess    r   <lambda>z'_GetLogLevelValidator.<locals>.<lambda>3   s    %%r   z6Only the following keys are valid for log level: [{}].z, c                 "    | j                         S r%   )upper)xs    r   r(   z'_GetLogLevelValidator.<locals>.<lambda>7   s
    	r   )
r   GetMessagesModuleWasmPluginLogConfigMinLogLevelValueValuesEnumto_dictkeysr	   CustomFunctionValidatorformatjoin)r   messagesr'   s     @r   r   r   ,   sv    ##$5{C( ""==EEGLLN  
	,	,%>EE
))$
% 
 r   c                     t        j                  d|      }| j                         D ci c]  \  }}t        |      | |    }}}t	        j
                  ||j                        S c c}}w )Nr#   )r   r,   items_ConvertToCamelCaser   DictToMessager-   )parsed_dictr   r4   keyvaluelog_config_dicts         r   GetLogConfigr=   ;   ss    ##$5{C( $))++*#u #C 00+   
		1M1M	NN	s   A&c                 f    | j                  d      }|d   dj                  d |dd D              z   S )z&Converts kebab-case name to camelCase.-r    c              3   <   K   | ]  }|j                           y wr%   )title).0r+   s     r   	<genexpr>z&_ConvertToCamelCase.<locals>.<genexpr>G   s     7h1779hs      N)splitr3   )nameparts     r   r7   r7   D   s3    	C$	a2777d12h77	77r   c                     | t         j                  v rt         j                  |    S t        dj                  |             )NzUnsupported Release Track: {})r   API_VERSION_FOR_TRACK
ValueErrorr2   )tracks    r   GetApiVersionrM   J   s8    
d(((%%e,,
4;;EB
CCr   N)__doc__
__future__r   r   r   apitools.base.pyr   )googlecloudsdk.api_lib.service_extensionsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   r   ArgDictr   r   r=   r7   rM   r   r   r   <module>rU      sL    - &  ' % : , /

## 
O8Dr   