import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement , Operator } from '../shared' ; param sid export class Account extends PolicyStatement { public servicePrefix = 'account' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to delete the alternate contacts for an account
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/accounts/latest/reference/API_DeleteAlternateContact.html
     */ public toDeleteAlternateContact ( ) { return this . to ( 'DeleteAlternateContact' ) ; } /**
     * Grants permission to disable use of a Region
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifTargetRegion()
     *
     * https://docs.aws.amazon.com/general/latest/gr/rande-manage.html
     */ public toDisableRegion ( ) { return this . to ( 'DisableRegion' ) ; } /**
     * Grants permission to enable use of a Region
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifTargetRegion()
     *
     * https://docs.aws.amazon.com/general/latest/gr/rande-manage.html
     */ public toEnableRegion ( ) { return this . to ( 'EnableRegion' ) ; } /**
     * Grants permission to retrieve the alternate contacts for an account
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/accounts/latest/reference/API_GetAlternateContact.html
     */ public toGetAlternateContact ( ) { return this . to ( 'GetAlternateContact' ) ; } /**
     * Grants permission to list the available Regions
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/general/latest/gr/rande-manage.html
     */ public toListRegions ( ) { return this . to ( 'ListRegions' ) ; } /**
     * Grants permission to modify the alternate contacts for an account
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/accounts/latest/reference/API_PutAlternateContact.html
     */ public toPutAlternateContact ( ) { return this . to ( 'PutAlternateContact' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'DeleteAlternateContact' , 'DisableRegion' , 'EnableRegion' , 'PutAlternateContact' ] , Read : [ 'GetAlternateContact' ] , List : [ 'ListRegions' ] } ; param account param partition public onAccount ( account ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:account::${ account || '*' }:account` ) ; } param managementAccountId param organizationId param memberAccountId param partition public onAccountInOrganization ( managementAccountId , organizationId , memberAccountId , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:account::${ managementAccountId }:account/o-${ organizationId }/${ memberAccountId }` ) ; } param value param operator public ifAccountResourceOrgPaths ( value , operator ? ) { return this . if ( `AccountResourceOrgPaths` , value , operator || 'StringLike' ) ; } param tagKey param value param operator public ifAccountResourceOrgTags ( tagKey , value , operator ? ) { return this . if ( `AccountResourceOrgTags/${ tagKey }` , value , operator || 'StringLike' ) ; } param value param operator public ifAlternateContactTypes ( value , operator ? ) { return this . if ( `AlternateContactTypes` , value , operator || 'StringLike' ) ; } param value param operator public ifTargetRegion ( value , operator ? ) { return this . if ( `TargetRegion` , value , operator || 'StringLike' ) ; } }