
                            S 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SK
Jr  SS	S	S
.rSS0SS0SS0S
.r\	R                  " \	R                  R                   5       " S S\	R"                  5      5       r\	R                  " \	R                  R&                  5       " S S\5      5       r\	R                  " \	R                  R*                  5       " S S\5      5       rg)z6`gcloud access-context-manager levels update` command.    )absolute_import)division)unicode_literals)levels)base)policiesv1alphav1)ALPHABETAGAcustom_levelsTc                       \ rS rSrSr\R                  S5      r\R                  S5      r	\
S 5       r\
S 5       rS rSrg)	UpdateLevelGA)   z Update an existing access level.r   c                 ,    [         R                  U SS9  g )Nr   release_trackr   ArgsVersionedparsers    3lib/surface/access_context_manager/levels/update.pyArgsUpdateLevelGA.Args0   s    d;    c                     [         R                  US5      n[        R                  U0 5      n[        R                  " U S5        [        R
                  " U 5        [        R                  " XUS9  g )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   UpdateLevelGA.ArgsVersioned4   sX    (,,]DAK*..}bAL
&+.

lDr   c           	      B   [         R                  " U R                  S9nUR                  R                  R                  5       n[        R                  " X15        S nUR                  S5      (       a9  [        R                  " U R                  S9nUR                  UR                  5      nS nU R                  R                  SS5      (       a"  UR                  S5      (       a  UR                  nUR!                  UUR"                  UR$                  UUR&                  US9$ )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   RunUpdateLevelGA.Run=   s    t'8'89F##))+I$$Y5#' *++22'')f%+%<%<


&!" 66,--00<<$$jj%A#44+  - -r    N)__name__
__module____qualname____firstlineno____doc__r    r!   r2   r"   r:   staticmethodr   r   rB   __static_attributes__rD   r   r   r   r   )   sR    ('++D1,)--d3-< < D D-r   r   c                   h    \ rS rSr\R                  S5      r\R                  S5      r\	S 5       r
Srg)UpdateLevelBetaX   r   c                 ,    [         R                  U SS9  g )Nr   r   r   r   s    r   r   UpdateLevelBeta.Args]   s    f=r   rD   NrE   rF   rG   rH   r    r!   r2   r"   r:   rJ   r   rK   rD   r   r   rM   rM   X   s4    '++F3,)--f5-> >r   rM   c                   h    \ rS rSr\R                  S5      r\R                  S5      r\	S 5       r
Srg)UpdateLevelAlphab   r   c                 ,    [         R                  U SS9  g )Nr   r   r   r   s    r   r   UpdateLevelAlpha.Argsg   s    g>r   rD   NrQ   rD   r   r   rS   rS   b   s4    '++G4,)--g6-? ?r   rS   N)rI   
__future__r   r   r   +googlecloudsdk.api_lib.accesscontextmanagerr   r0   googlecloudsdk.callioper   /googlecloudsdk.command_lib.accesscontextmanagerr   r    r"   ReleaseTracksReleaseTrackr   UpdateCommandr   r   rM   r   rS   rD   r   r   <module>r^      s    = &  ' L ( B D#,d$G  	 	 	
  D%%(()+-D&& +- *+-\ D%%**+>m > ,> D%%++,?} ? -?r   