import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement } from '../shared' ; param sid export class Artifact extends PolicyStatement { public servicePrefix = 'artifact' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to accept an AWS agreement that has not yet been accepted by the customer account.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/artifact/latest/ug/managingagreements.html
     */ public toAcceptAgreement ( ) { return this . to ( 'AcceptAgreement' ) ; } /**
     * Grants permission to download an AWS agreement that has not yet been accepted or a customer agreement that has been accepted by the customer account.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/artifact/latest/ug/managingagreements.html
     */ public toDownloadAgreement ( ) { return this . to ( 'DownloadAgreement' ) ; } /**
     * Grants permission to download an AWS compliance report package.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/artifact/latest/ug/getting-started.html
     */ public toGet ( ) { return this . to ( 'Get' ) ; } /**
     * Grants permission to terminate a customer agreement that was previously accepted by the customer account.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/artifact/latest/ug/managingagreements.html
     */ public toTerminateAgreement ( ) { return this . to ( 'TerminateAgreement' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'AcceptAgreement' , 'TerminateAgreement' ] , Read : [ 'DownloadAgreement' , 'Get' ] } ; param resourceName param partition public onReportPackage ( resourceName , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:artifact:::report-package/${ resourceName }` ) ; } param resourceName param account param partition public onCustomerAgreement ( resourceName , account ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:artifact::${ account || '*' }:customer-agreement/${ resourceName }` ) ; } param resourceName param partition public onAgreement ( resourceName , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:artifact:::agreement/${ resourceName }` ) ; } }