
    C                     @   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	l
mZ dd
lZ e	j                  e	j                   j"                  e	j                   j$                  e	j                   j&                         G d de	j(                               Zy
)zCCommand to add denied values to an Organization Policy list policy.    )absolute_import)division)unicode_literals)
exceptions)org_policies)base)org_policies_base)org_policies_flagsNc                   &    e Zd ZdZed        Zd Zy)Denya  Add values to an Organization Policy denied_values list policy.

  Adds one or more values to the specified Organization Policy denied_values
  list policy associated with the specified resource.

  ## EXAMPLES

  The following command adds `devEnv` and `prodEnv` to an Organization Policy
  denied_values list policy for constraint `serviceuser.services`
  on project `foo-project`:

    $ {command} serviceuser.services --project=foo-project devEnv prodEnv
  c                     t        j                  |        t        j                  |        t        j                  dddd      j                  |        y )Ndenied_valueDENIED_VALUE+z3The values to add to the denied_values list policy.)metavarnargshelp)flagsAddIdArgToParserAddParentResourceFlagsToParserr   ArgumentAddToParser)parsers    1lib/surface/resource_manager/org_policies/deny.pyArgsz	Deny.Args.   sB    	6"	((0MMB	
 k&    c                    t        j                         }t        j                  |      }|j	                  t        j
                  |            }|j                  s"|j                  r+|j                  j                  rt        j                  d      |j                  r+|j                  j                  rt        j                  d      |j                  r`|j                  j                  rJ|j                  D ]:  }|j                  j                  j                  t        j                   |             < n!|j#                  |j                        |_        |j$                  rd |_        |j'                  t        j(                  ||            S )Nz5Cannot add values to a non-denied_values list policy.z5Cannot add values if all_values is already specified.)deniedValues)r   OrgPoliciesMessagesr	   OrgPoliciesServiceGetOrgPolicyGetOrgPolicyRequestbooleanPolicy
listPolicyallowedValuesr   ResourceManagerError	allValuesr   r   appendsix	text_type
ListPolicyrestoreDefaultSetOrgPolicySetOrgPolicyRequest)selfargsmessagesservicepolicyvalues         r   RunzDeny.Run:   sC   //1H2248G!!"3"G"G"MNF 1 1 & 1 1 ? ?++
AC C V..88++
AC C V..;;$$%&&--cmmE.BC % #--4;L;L-Mf"f--dF;= =r   N)__name__
__module____qualname____doc__staticmethodr   r5    r   r   r   r      s       =r   r   )r9   
__future__r   r   r   'googlecloudsdk.api_lib.resource_managerr   r   googlecloudsdk.callioper   +googlecloudsdk.command_lib.resource_managerr	   r
   r   r)   ReleaseTracksReleaseTrackALPHABETAGACommandr   r;   r   r   <module>rF      s}    J &  ' > @ ( I S 
 D%%++T->->-C-C%%((*4=4<< 4=*4=r   