import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement } from '../shared' ; param sid export class Acm extends PolicyStatement { public servicePrefix = 'acm' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to add one or more tags to a certificate
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_AddTagsToCertificate.html
     */ public toAddTagsToCertificate ( ) { return this . to ( 'AddTagsToCertificate' ) ; } /**
     * Grants permission to delete a certificate and its associated private key
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_DeleteCertificate.html
     */ public toDeleteCertificate ( ) { return this . to ( 'DeleteCertificate' ) ; } /**
     * Grants permission to retreive a certificates and its metadata
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html
     */ public toDescribeCertificate ( ) { return this . to ( 'DescribeCertificate' ) ; } /**
     * Grants permission to export a private certificate issued by a private certificate authority (CA) for use anywhere
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_ExportCertificate.html
     */ public toExportCertificate ( ) { return this . to ( 'ExportCertificate' ) ; } /**
     * Grants permission to retrieve account level configuration from AWS Certificate Manager
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_GetAccountConfiguration.html
     */ public toGetAccountConfiguration ( ) { return this . to ( 'GetAccountConfiguration' ) ; } /**
     * Grants permission to retrieve a certificate and certificate chain for a certificate ARN
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_GetCertificate.html
     */ public toGetCertificate ( ) { return this . to ( 'GetCertificate' ) ; } /**
     * Grants permission to import a 3rd party certificate into AWS Certificate Manager (ACM)
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_ImportCertificate.html
     */ public toImportCertificate ( ) { return this . to ( 'ImportCertificate' ) ; } /**
     * Grants permission to retrieve a list of the certificate ARNs and the domain name for each ARN
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_ListCertificates.html
     */ public toListCertificates ( ) { return this . to ( 'ListCertificates' ) ; } /**
     * Grants permission to lists the tags that have been associated with a certificate
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_ListTagsForCertificate.html
     */ public toListTagsForCertificate ( ) { return this . to ( 'ListTagsForCertificate' ) ; } /**
     * Grants permission to update account level configuration in AWS Certificate Manager
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_PutAccountConfiguration.html
     */ public toPutAccountConfiguration ( ) { return this . to ( 'PutAccountConfiguration' ) ; } /**
     * Grants permission to remove one or more tags from a certificate
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_RemoveTagsFromCertificate.html
     */ public toRemoveTagsFromCertificate ( ) { return this . to ( 'RemoveTagsFromCertificate' ) ; } /**
     * Grants permission to renew an eligible private certificate
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_RenewCertificate.html
     */ public toRenewCertificate ( ) { return this . to ( 'RenewCertificate' ) ; } /**
     * Grants permission to requests a public or private certificate
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_RequestCertificate.html
     */ public toRequestCertificate ( ) { return this . to ( 'RequestCertificate' ) ; } /**
     * Grants permission to resend an email to request domain ownership validation
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_ResendValidationEmail.html
     */ public toResendValidationEmail ( ) { return this . to ( 'ResendValidationEmail' ) ; } /**
     * Grants permission to update a certificate configuration. Use this to specify whether to opt in to or out of certificate transparency logging
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/acm/latest/APIReference/API_UpdateCertificateOptions.html
     */ public toUpdateCertificateOptions ( ) { return this . to ( 'UpdateCertificateOptions' ) ; } protected accessLevelList : AccessLevelList = { Tagging : [ 'AddTagsToCertificate' , 'RemoveTagsFromCertificate' ] , Write : [ 'DeleteCertificate' , 'ImportCertificate' , 'PutAccountConfiguration' , 'RenewCertificate' , 'RequestCertificate' , 'ResendValidationEmail' , 'UpdateCertificateOptions' ] , Read : [ 'DescribeCertificate' , 'ExportCertificate' , 'GetAccountConfiguration' , 'GetCertificate' , 'ListTagsForCertificate' ] , List : [ 'ListCertificates' ] } ; param certificateId param account param region param partition public onCertificate ( certificateId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:acm:${ region || '*' }:${ account || '*' }:certificate/${ certificateId }` ) ; } }