
    f                        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mZ  ej"                  ej$                  j&                         G d dej(                               Z ej"                  ej$                  j,                         G d dej(                               Z ej"                  ej$                  j0                         G d dej(                               Zy)z'Command for deleting security policies.    )absolute_import)division)unicode_literals)base_classes)utils)client)base)scope)flagsc                   0    e Zd ZdZdZed        Zd Zd Zy)Delete  Delete security policies.

  *{command}* deletes Compute Engine security policies. Security
  policies can only be deleted when no other resources (e.g.,
  backend services) refer to them.

  ## EXAMPLES

  To delete a security policy, run:

    $ {command} my-policy
  Nc                     t        j                  d      | _        | j                  j                  |d       |j                  j                  t         j                         y NT)pluraldelete)operation_type)r    SecurityPolicyMultiScopeArgumentSECURITY_POLICY_ARGAddArgumentdisplay_infoAddCacheUpdaterGlobalSecurityPoliciesCompleterclsparsers     /lib/surface/compute/security_policies/delete.pyArgszDelete.Args.   sK    #DDC''x'H
''(M(MN    c                      y)Nzcompute.securityPolicies )selfs    r   
CollectionzDelete.Collection5   s    %r   c                    t        j                  | j                               }| j                  j	                  ||j
                  t        j                  j                        }t        j                  |       g }|D ]D  }t        j                  ||j                        }|j                  |j                  d             F |j                  j                  |      S N)default_scope)compute_clientT)only_generate_requestr   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALr   PromptForDeletionr   SecurityPolicyextendr   MakeRequestsr"   argsholderrefsrequestsrefsecurity_policys          r   Runz
Delete.Run8       **4+<+<+>?F##55fm.E.E.L.L 6 ND	D!H--c&--Poooo,,4,HI  ==%%h//r   )	__name__
__module____qualname____doc__r   classmethodr   r#   r<   r!   r   r   r   r      s-     O O&0r   r   c                   *    e Zd ZdZdZed        Zd Zy)
DeleteBetar   Nc                     t        j                  d      | _        | j                  j                  |d       |j                  j                  t         j                         y r   r   r   r   r   r   r   SecurityPoliciesCompleterr   s     r   r   zDeleteBeta.ArgsW   K    #DDC''x'H
''(G(GHr   c                    t        j                  | j                               }| j                  j	                  ||j
                  t        j                  j                        }t        j                  |       g }|D ]D  }t        j                  ||j                        }|j                  |j                  d             F |j                  j                  |      S r%   r)   r5   s          r   r<   zDeleteBeta.Run^   r=   r   r>   r?   r@   rA   r   rB   r   r<   r!   r   r   rD   rD   F   (     I I0r   rD   c                   *    e Zd ZdZdZed        Zd Zy)DeleteAlphar   Nc                     t        j                  d      | _        | j                  j                  |d       |j                  j                  t         j                         y r   rF   r   s     r   r   zDeleteAlpha.Args}   rH   r   c                    t        j                  | j                               }| j                  j	                  ||j
                  t        j                  j                        }t        j                  |       g }|D ]D  }t        j                  ||j                        }|j                  |j                  d             F |j                  j                  |      S r%   r)   r5   s          r   r<   zDeleteAlpha.Run   r=   r   rJ   r!   r   r   rM   rM   l   rK   r   rM   N)rA   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   0googlecloudsdk.api_lib.compute.security_policiesr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r.   4googlecloudsdk.command_lib.compute.security_policiesr   ReleaseTracksr+   GADeleteCommandr   BETArD   ALPHArM   r!   r   r   <module>r[      s    . &  ' 7 0 C ( E F D%%(()%0T %0 *%0P D%%**+"0## "0 ,"0J D%%++,"0$$$ "0 -"0r   