
                            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	KJr  SS
KJr  SSKJr  SS jrS r\R$                  " \R&                  R(                  5       " S S\R*                  5      5       r\R$                  " \R&                  R.                  5       " S S\R*                  5      5       r\R$                  " \R&                  R2                  5       " S S\R*                  5      5       rg)zRemove IAM Policy Binding.    )absolute_import)division)unicode_literals)models)base)iam_util)endpoint_util)flags)models_util)region_utilc                     [         R                  " XS9  [        R                  " SSS9R	                  U 5        [        R
                  " SS9R	                  U 5        [        R                  R                  U 5        g )Nadd_conditionTz+for which to remove IAM policy binding from)requiredverb)include_global)	r    AddArgsForRemoveIamPolicyBindingr
   GetModelResourceArgAddToParserGetRegionArgr   URI_FLAGRemoveFromParser)parserr   s     ;lib/surface/ai_platform/models/remove_iam_policy_binding.py_GetRemoveIamPolicyBindingArgsr      sY    
++FP8::E+f:MD)55f=--  (    c                 "   [         R                  " U 5      n[        R                  " US9   [        R
                  " 5       n[        R                  " X R                  U R                  U R                  5      sS S S 5        $ ! , (       d  f       g = f)Nregion)r   	GetRegionr	   MlEndpointOverridesr   ModelsClientr   RemoveIamPolicyBindingmodelmemberrole)argsr   clients      r   _Runr)   '   s[      &&((7  "F--fjj$++.2ii9 877s   AB  
Bc                   X    \ rS rSrSrSr\R                  " SSSSS9r\	S	 5       r
S
 rSrg)r#   /     Removes IAM policy binding from an AI Platform Model resource.

Removes a policy binding from an AI Platform Model. One
binding consists of a member, a role and an optional condition.
See $ {parent_command} get-iam-policy for examples of how to
specify a model resource.
3remove IAM policy binding from an AI Platform modelr$   my_modelroles/ml.adminFr&   	conditionc                     [        U SS9  gRegister flags for this command.

Args:
  parser: An argparse.ArgumentParser-like object. It is mocked out in order
    to capture some information, but behaves like an ArgumentParser.
Fr   Nr   r   s    r   ArgsRemoveIamPolicyBinding.Args=        #6?r   c                     [        U5      $ This is what gets called when the user runs this command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  The specified function with its description and configured filter.
r)   selfr'   s     r   RunRemoveIamPolicyBinding.RunG        :r    N__name__
__module____qualname____firstlineno____doc__descriptionr   (GetDetailedHelpForRemoveIamPolicyBindingdetailed_helpstaticmethodr7   r@   __static_attributes__rC   r   r   r#   r#   /   E     F+CCz 0EC- @ @
r   r#   c                   X    \ rS rSrSrSr\R                  " SSSSS9r\	S	 5       r
S
 rSrg)RemoveIamPolicyBindingBetaT   r,   r-   r$   r.   r/   Fr0   c                     [        U SS9  gr3   r5   r6   s    r   r7   RemoveIamPolicyBindingBeta.Argsb   r9   r   c                     [        U5      $ r;   r=   r>   s     r   r@   RemoveIamPolicyBindingBeta.Runl   rB   r   rC   NrD   rC   r   r   rQ   rQ   T   rO   r   rQ   c                   X    \ rS rSrSrSr\R                  " SSSSS9r\	S	 5       r
S
 rSrg)RemoveIamPolicyBindingAlphay   a  Removes IAM policy binding from an AI Platform Model resource.

Remove an IAM policy binding from the IAM policy of a ML model. One binding
consists of a member, a role, and an optional condition.
See $ {parent_command} get-iam-policy for examples of how to
specify a model resource.
r-   r$   r.   r/   Fr0   c                     [        U SS9  g)r4   Tr   Nr5   r6   s    r   r7    RemoveIamPolicyBindingAlpha.Args   s     #6>r   c                    [         R                  " U5      n[        R                  " US9   [        R
                  " U5      n[        R                  " X1R                  5        [        R                  " [        R                  " 5       UR                  UR                  UR                  U5      sSSS5        $ ! , (       d  f       g= f)r<   r   N)r   r    r	   r!   r   ValidateAndExtractCondition'ValidateMutexConditionAndPrimitiveRolesr&   r   #RemoveIamPolicyBindingWithConditionr   r"   r$   r%   )r?   r'   r   r1   s       r   r@   RemoveIamPolicyBindingAlpha.Run   s     ""4(F		*	*&	966t<i66y))L<<



T[[$))YP 
:	9	9s   BB66
CrC   NrD   rC   r   r   rX   rX   y   sD     F+CCz 0EC- ? ?Pr   rX   N)F)rI   
__future__r   r   r    googlecloudsdk.api_lib.ml_enginer   googlecloudsdk.callioper   googlecloudsdk.command_lib.iamr   $googlecloudsdk.command_lib.ml_enginer	   r
   r   r   r   r)   ReleaseTracksReleaseTrackGACommandr#   BETArQ   ALPHArX   rC   r   r   <module>rl      s    ! &  ' 3 ( 3 > 6 < <)9 D%%(()!T\\ ! *!H D%%**+! ! ,!H D%%++,&P$,, &P -&Pr   