
                            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KJr  SSS.r\R(                  \R*                  " \R,                  R.                  5       " S S\R0                  5      5       5       r\R(                  \R*                  " \R,                  R4                  5       " S S\5      5       5       rg)z'Command to generate a new Audit Report.    )absolute_import)division)unicode_literals)
exceptions)audit_reports)	constants)base)exception_utils)flags)
propertieszGenerate a new Audit Report.a           To generate an Audit Report in the `us-central1` region,
        for a project with ID `123` for compliance framework `fedramp_moderate` in `odf` format and store it in `gs://testbucketauditmanager` bucket, run:

          $ {command} --project=123 --location=us-central1 --compliance-framework=fedramp_moderate --report-format=odf --gcs-uri=gs://testbucketauditmanager
        )DESCRIPTIONEXAMPLESc                   ^    \ rS rSrSr\r\R                  R                  r
\S 5       rS rSrg)Generate*   Generate Audit Report.c                 z   [         R                  " U S5        [         R                  " U S5        [         R                  " U 5        [         R                  " U 5        [         R
                  " U 5        U R                  R                  [        R                  R                  R                  R                  5       5        g )Nz"for which to generate audit reportzthe report should be generated)r   AddProjectOrFolderFlagsAddLocationFlagAddComplianceFrameworkFlagAddReportFormatFlagAddDestinationFlagsdisplay_info	AddFormatr   VALUEScoredefault_formatGet)parsers    3lib/surface/audit_manager/audit_reports/generate.pyArgsGenerate.Args2   s}    	!!&*NO	&"BC	$$V,	f%	f%
!!*"3"3"8"8"G"G"K"K"MN    c           
      f   UR                   SLnU(       a  SR                  UR                   S9OSR                  UR                  S9nUSR                  UR                  S9-  n[        R
                  " U R                  S9n UR                  UUR                  UR                  UR                  US	9$ ! [        R                   Gag  n[        R                  " U5      nUR                  [        R                   5      (       at  S
Ul        [$        R&                  " UR(                  5       S[$        R*                  " U5       S[$        R,                  " U5       S[$        R.                  " U5       3Ul        OUR                  [        R2                  5      (       au  Sn[4        R6                  R8                  R:                  R=                  5       nSUl        U(       a  SOSn	U	 SU(       a  UR                   OUR                   SU SU 3Ul        [>        R@                  " U5         SnAgSnAff = f)zRun the generate command.Nzfolders/{folder})folderzprojects/{project})projectz/locations/{location})location)api_version)report_formatgcs_uriis_parent_folderzenroll the resourcez enrollments add  zroles/auditmanager.auditorzgrant permissionz6gcloud resource-manager folders add-iam-policy-bindingz&gcloud projects add-iam-policy-bindingz --member=user:z --role )!r%   formatr&   r'   r   AuditReportsClientr(   r   compliance_frameworkr)   r*   apitools_exceptions	HttpErrorr
   AuditManagerErrorhas_error_infoERROR_REASON_NOT_ENROLLEDsuggested_command_purposer   GetCommandPrefixcommand_pathGetProjectOrFolderParamGetLocationParamGetEligibleGcsBucketParamsuggested_commandERROR_REASON_PERMISSION_DENIEDr   r   r   accountr   core_exceptionsreraise)
selfargsr+   scopeclienterrorexcroleusercommand_prefixs
             r    RunGenerate.Run;   s   {{$.  	!!!5!(((> 
 
$++T]]+CCE--$:J:JKF"#__


#
#**,,+    (( #--e4c			OEE	F	F(=%%%d&7&789 :--d34Ae6L6LT6R5S//568 	
 oLLMM+  %%--113(:%   E9 	 /T\\BdV8D63 	 c""3#s   0B4 4H0	EH++H0 N)__name__
__module____qualname____firstlineno____doc___DETAILED_HELPdetailed_helpr   
ApiVersionV1r(   staticmethodr!   rI   __static_attributes__rK   r#   r    r   r   *   s6      -$$''+O O0#r#   r   c                   D    \ rS rSrSr\R                  R                  rSr	g)GenerateAlphan   r   rK   N)
rL   rM   rN   rO   rP   r   rS   V1_ALPHAr(   rV   rK   r#   r    rX   rX   n   s     $$--+r#   rX   N)rP   
__future__r   r   r   apitools.base.pyr   r0   $googlecloudsdk.api_lib.audit_managerr   r   googlecloudsdk.callioper	   (googlecloudsdk.command_lib.audit_managerr
   r   googlecloudsdk.corer>   r   rQ   DefaultUniverseOnlyReleaseTracksReleaseTrackGACreateCommandr   ALPHArX   rK   r#   r    <module>rg      s    . &  ' > > : ( D : = * 2 D%%(()?#t!! ?# * ?#D D%%++,.H . - .r#   