
                            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	d	d
Zddiddiddid
Z e	j                  e	j                  j                          G d de	j"                               Z e	j                  e	j                  j&                         G d de             Z e	j                  e	j                  j*                         G d de             Zy)z6`gcloud access-context-manager levels update` command.    )absolute_import)division)unicode_literals)levels)base)policiesv1alphav1)ALPHABETAGAcustom_levelsTc                   z    e Zd ZdZej                  d      Zej                  d      Ze	d        Z
e	d        Zd Zy)UpdateLevelGAz Update an existing access level.r   c                 2    t         j                  | d       y )Nr   release_trackr   ArgsVersionedparsers    3lib/surface/access_context_manager/levels/update.pyArgszUpdateLevelGA.Args0   s    d;    c                     t         j                  |d      }t        j                  |i       }t        j                  | d       t        j
                  |        t        j                  | ||       y )Nr
   z	to update)api_versionfeature_mask)_API_VERSION_PER_TRACKget_FEATURE_MASK_PER_TRACKr   AddResourceArgAddLevelArgsAddLevelSpecArgs)r   r   r   r   s       r   r   zUpdateLevelGA.ArgsVersioned4   sZ    (,,]DAK*..}bAL
&+.

KlDr   c                 2   t        j                  | j                        }|j                  j                  j                         }t        j                  ||       d }|j                  d      r;t        j                  | j                        }|j                  |j                        }d }| j                  j                  dd      r|j                  d      r|j                  }|j!                  ||j"                  |j$                  ||j&                  |      S )N)versioncombine_function)r   r   Fcustom_level_spec)descriptiontitlebasic_level_combine_functionbasic_level_conditionscustom_level_expr)
levels_apiClient_API_VERSIONCONCEPTSlevelParser   ValidateAccessPolicyArgIsSpecifiedr   GetCombineFunctionEnumMapperGetEnumForChoicer&   _FEATURE_MASKr   r'   Patchr(   r)   basic_level_spec)selfargsclient	level_refr*   mapperr,   s          r   RunzUpdateLevelGA.Run=   s    t'8'89F##))+I$$Y5#' *+22'')f%+%<%<


&!" 6,-00<<$$jj%A#44+  - -r   N)__name__
__module____qualname____doc__r   r   r/   r    r7   staticmethodr   r   r?    r   r   r   r   )   sR    ('++D1,)--d3-< < D D-r   r   c                   `    e Zd Zej	                  d      Zej	                  d      Zed        Z	y)UpdateLevelBetar   c                 2    t         j                  | d       y )Nr   r   r   r   s    r   r   zUpdateLevelBeta.Args]   s    f=r   N
r@   rA   rB   r   r   r/   r    r7   rD   r   rE   r   r   rG   rG   X   s4    '++F3,)--f5-> >r   rG   c                   `    e Zd Zej	                  d      Zej	                  d      Zed        Z	y)UpdateLevelAlphar   c                 2    t         j                  | d       y )Nr   r   r   r   s    r   r   zUpdateLevelAlpha.Argsg   s    g>r   NrI   rE   r   r   rK   rK   b   s4    '++G4,)--g6-? ?r   rK   N)rC   
__future__r   r   r   +googlecloudsdk.api_lib.accesscontextmanagerr   r-   googlecloudsdk.callioper   /googlecloudsdk.command_lib.accesscontextmanagerr   r   r    ReleaseTracksReleaseTrackr   UpdateCommandr   r   rG   r   rK   rE   r   r   <module>rT      s    = &  ' L ( B D#,d$G  	 	 	
  D%%(()+-D&& +- *+-\ D%%**+>m > ,> D%%++,?} ? -?r   