
                             d Z ddlmZ ddlmZ ddlmZ ddl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  G d dej$                        Zy)z&Command for deleting service accounts.    )absolute_import)division)unicode_literalsN)util)smart_guardrails)base)iam_util)log)
console_ioc                   N    e Zd ZdZd ej
                  d      iZed        Zd Z	y)DeletezDelete a service account from a project.

  If the service account does not exist, this command returns a
  `PERMISSION_DENIED` error.
  EXAMPLESz
          To delete an service account from your project, run:

            $ {command} my-iam-account@my-project.iam.gserviceaccount.com
          c                     t        j                  |d       | j                         t        j                  j                  k7  rt        j
                  |d       y y )Nz	to delete)actiondeletion)r	   AddServiceAccountNameArgReleaseTrackr   GAAddServiceAccountRecommendArg)clsparsers     *lib/surface/iam/service_accounts/delete.pyArgszDelete.Args/   sG    %%{$
T..111,,VJG 2    c                 L   dj                  |j                        }t        j                         \  }}t	        j
                  |j                        }| j                         t        j                  j                  k7  r|j                  r|j                  j                  |j                  |            }t        j                          t        j                  | j                         |j                   |j                        }t        j"                          |r|dj                  |      z  }t%        j&                  |d       |j                  j)                  |j+                  |             t,        j.                  j1                  dj                  |j                               y )Nz-You are about to delete service account [{0}])namez

{0}T)messagecancel_on_nozdeleted service account [{0}])formatservice_accountr   GetClientAndMessagesr	   EmailToAccountResourceNamer   r   r   	recommendprojects_serviceAccountsGet$IamProjectsServiceAccountsGetRequestEnableUserProjectQuotar   GetServiceAccountDeletionRisk	projectIdDisableUserProjectQuotar   PromptContinuer   'IamProjectsServiceAccountsDeleteRequestr
   statusPrint)selfargsprompt_messageclientmessagessa_resource_namer    risks           r   Runz
Delete.Run6   sU   DKKN 002FH::4;O;OPd//222t~~77;;

7
7=M
7
No !!#;;





#
#


d
 ""$	)**400n4H
##**88>N8O JJ4;; r   N)
__name__
__module____qualname____doc__textwrapdedentdetailed_helpclassmethodr   r6    r   r   r   r       s@     /(// # - H Hr   r   )r:   
__future__r   r   r   r;   googlecloudsdk.api_lib.iamr   'googlecloudsdk.api_lib.smart_guardrailsr   googlecloudsdk.callioper   googlecloudsdk.command_lib.iamr	   googlecloudsdk.corer
   googlecloudsdk.core.consoler   DeleteCommandr   r?   r   r   <module>rH      s:     - &  '  + D ( 3 # 23T 3r   