
                         8   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  ej                  ej                  j                   ej                  j"                  ej                  j$                         G d	 d
ej&                               Zy)z4Command for removing resource policies to instances.    )absolute_import)division)unicode_literals)base_classes)base)flags)utilc                   &    e Zd ZdZed        Zd Zy)InstancesRemoveResourcePoliciesa!  Remove resource policies from Compute Engine VM instances.

    *{command}* removes resource policies from Compute Engine
    virtual instances.

    ## EXAMPLES

    To remove resource policy ``pol1'' from instance ``inst1'', run this:

      $ {command} inst1 --resource-policies=pol1
  c                 x    t         j                  j                  | d       t        j                  | ddd       y )Nzremove resource policies from)operation_typezremoved frominstanceT)required)instance_flagsINSTANCE_ARGAddArgumentr   AddResourcePoliciesArgs)parsers    9lib/surface/compute/instances/remove_resource_policies.pyArgsz$InstancesRemoveResourcePolicies.Args+   s9    ++> , @	!!
T;    c                    t        j                  | j                               }|j                  }|j                  }t
        j                  j                  ||j                  t        j                  |            }g }|j                  D ]X  }t        j                  |j                  ||j                  |j                        }|j                  |j!                                Z |j#                  |j%                         |j                  |j                  |j'                  |            }	|j)                  |j*                  j,                  d|	fg      S )N)scope_lister)projectzone)resourcePolicies)r   r   r   &instancesRemoveResourcePoliciesRequestRemoveResourcePolicies)r   ComputeApiHolderReleaseTrackclientmessagesr   r   ResolveAsResource	resourcesGetInstanceZoneScopeListerresource_policiesr	   ParseResourcePolicyWithZoner   r   appendSelfLink-ComputeInstancesRemoveResourcePoliciesRequestName&InstancesRemoveResourcePoliciesRequestMakeRequestsapitools_client	instances)
selfargsholderr!   r"   instance_refr&   policyresource_policy_refremove_requests
             r   Runz#InstancesRemoveResourcePolicies.Run2   sG   **4+<+<+>?F]]FH!..@@#>>vF A HL
 (( <<



&&  	"
 2;;=> ) KK""$$$77. 	8 	0 L 1N !7!7!A!A!9>!K  L M Mr   N)__name__
__module____qualname____doc__staticmethodr   r7    r   r   r   r      s!    
 ; ;Mr   r   N)r;   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   ,googlecloudsdk.command_lib.compute.instancesr   r   4googlecloudsdk.command_lib.compute.resource_policiesr	   ReleaseTracksr    ALPHABETAGAUpdateCommandr   r=   r   r   <module>rH      s~    ; &  ' 7 ( P F E D%%++T->->-C-C%%((*0Md&8&8 0M*0Mr   