
                            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\5      5       r\R$                  " \R&                  R2                  5       " S S\R*                  5      5       rg)z.Command to add IAM policy binding for a model.    )absolute_import)division)unicode_literals)models)base)iam_util)endpoint_util)flags)models_util)region_utilc                     [         R                  " 5       R                  U 5        [         R                  " SS9R                  U 5        [        R
                  " U [         R                  US9  g )NT)include_globaladd_condition)r
   GetModelNameAddToParserGetRegionArgr   AddArgsForAddIamPolicyBindingMlEngineIamRolesCompleter)parserr   s     8lib/surface/ai_platform/models/add_iam_policy_binding.py_AddIamPolicyBindingFlagsr      sN    ""6*D)55f=
((e--]L    c                     [         R                  " U 5      n[        R                  " US9   [        R
                  " [        R                  " 5       U R                  U R                  U R                  5      sS S S 5        $ ! , (       d  f       g = fN)region)r   	GetRegionr	   MlEndpointOverridesr   AddIamPolicyBindingr   ModelsClientmodelmemberrole)argsr   s     r   _Runr%   %   sY      &&((7**6+>+>+@$**+/;;		C 877s   A
A??
Bc                   T    \ rS rSrSr\R                  " SSSSS9r\S 5       r	S	 r
S
rg)r   ,   "Add IAM policy binding to a model.r!   my_modelroles/ml.adminFr#   	conditionc                     [        U 5        g Nr   r   s    r   ArgsAddIamPolicyBinding.Args3   
    f%r   c                     [        U5      $ r.   r%   selfr$   s     r   RunAddIamPolicyBinding.Run7       :r    N__name__
__module____qualname____firstlineno____doc__r   %GetDetailedHelpForAddIamPolicyBindingdetailed_helpstaticmethodr1   r8   __static_attributes__r;   r   r   r   r   ,   9    *@@z 0EC- & &r   r   c                   T    \ rS rSrSr\R                  " SSSSS9r\S 5       r	S	 r
S
rg)AddIamPolicyBindingBeta;   r(   r!   r)   r*   Fr+   c                     [        U 5        g r.   r/   r0   s    r   r1   AddIamPolicyBindingBeta.ArgsB   r3   r   c                     [        U5      $ r.   r5   r6   s     r   r8   AddIamPolicyBindingBeta.RunF   r:   r   r;   Nr<   r;   r   r   rH   rH   ;   rF   r   rH   c                   T    \ rS rSrSr\R                  " SSSSS9r\S 5       r	S	 r
S
rg)AddIamPolicyBindingAlphaJ   zAdds IAM policy binding to a model.

Adds a policy binding to the IAM policy of a ML engine model, given a model ID
and the binding. One binding consists of a member, a role, and an optional
condition.
r!   r)   r*   Tr+   c                     [        U SS9  g )NTr   r/   r0   s    r   r1   AddIamPolicyBindingAlpha.ArgsU   s    fD9r   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   r   r	   r   r   ValidateAndExtractCondition'ValidateMutexConditionAndPrimitiveRolesr#   r    AddIamPolicyBindingWithConditionr   r    r!   r"   )r7   r$   r   r,   s       r   r8   AddIamPolicyBindingAlpha.RunY   s    ""4(F		*	*&	966t<i66y))L99




**
++
))
 
:	9	9s   BB66
Cr;   Nr<   r;   r   r   rO   rO   J   s=     @@z 0DB- : :
r   rO   N)F)rA   
__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   BETArH   ALPHArO   r;   r   r   <module>rc      s    5 &  ' 3 ( 3 > 6 < <LC D%%(()$,,  * D%%**+1  , D%%++,t||  -r   