import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement , Operator } from '../shared' ; param sid export class Elasticbeanstalk extends PolicyStatement { public servicePrefix = 'elasticbeanstalk' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to cancel in-progress environment configuration update or application version deployment
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_AbortEnvironmentUpdate.html
     */ public toAbortEnvironmentUpdate ( ) { return this . to ( 'AbortEnvironmentUpdate' ) ; } /**
     * Grants permission to add tags to an Elastic Beanstalk resource and to update tag values
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateTagsForResource.html
     */ public toAddTags ( ) { return this . to ( 'AddTags' ) ; } /**
     * Grants permission to apply a scheduled managed action immediately
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ApplyEnvironmentManagedAction.html
     */ public toApplyEnvironmentManagedAction ( ) { return this . to ( 'ApplyEnvironmentManagedAction' ) ; } /**
     * Grants permission to associate an operations role with an environment
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_AssociateEnvironmentOperationsRole.html
     */ public toAssociateEnvironmentOperationsRole ( ) { return this . to ( 'AssociateEnvironmentOperationsRole' ) ; } /**
     * Grants permission to check CNAME availability
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CheckDNSAvailability.html
     */ public toCheckDNSAvailability ( ) { return this . to ( 'CheckDNSAvailability' ) ; } /**
     * Grants permission to create or update a group of environments, each running a separate component of a single application
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ComposeEnvironments.html
     */ public toComposeEnvironments ( ) { return this . to ( 'ComposeEnvironments' ) ; } /**
     * Grants permission to create a new application
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplication.html
     */ public toCreateApplication ( ) { return this . to ( 'CreateApplication' ) ; } /**
     * Grants permission to create an application version for an application
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplicationVersion.html
     */ public toCreateApplicationVersion ( ) { return this . to ( 'CreateApplicationVersion' ) ; } /**
     * Grants permission to create a configuration template
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifFromApplication()
     * - .ifFromApplicationVersion()
     * - .ifFromConfigurationTemplate()
     * - .ifFromEnvironment()
     * - .ifFromSolutionStack()
     * - .ifFromPlatform()
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateConfigurationTemplate.html
     */ public toCreateConfigurationTemplate ( ) { return this . to ( 'CreateConfigurationTemplate' ) ; } /**
     * Grants permission to launch an environment for an application
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifFromApplicationVersion()
     * - .ifFromConfigurationTemplate()
     * - .ifFromSolutionStack()
     * - .ifFromPlatform()
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateEnvironment.html
     */ public toCreateEnvironment ( ) { return this . to ( 'CreateEnvironment' ) ; } /**
     * Grants permission to create a new version of a custom platform
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreatePlatformVersion.html
     */ public toCreatePlatformVersion ( ) { return this . to ( 'CreatePlatformVersion' ) ; } /**
     * Grants permission to create the Amazon S3 storage location for the account
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateStorageLocation.html
     */ public toCreateStorageLocation ( ) { return this . to ( 'CreateStorageLocation' ) ; } /**
     * Grants permission to delete an application along with all associated versions and configurations
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteApplication.html
     */ public toDeleteApplication ( ) { return this . to ( 'DeleteApplication' ) ; } /**
     * Grants permission to delete an application version from an application
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteApplicationVersion.html
     */ public toDeleteApplicationVersion ( ) { return this . to ( 'DeleteApplicationVersion' ) ; } /**
     * Grants permission to delete a configuration template
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteConfigurationTemplate.html
     */ public toDeleteConfigurationTemplate ( ) { return this . to ( 'DeleteConfigurationTemplate' ) ; } /**
     * Grants permission to delete the draft configuration associated with the running environment
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteEnvironmentConfiguration.html
     */ public toDeleteEnvironmentConfiguration ( ) { return this . to ( 'DeleteEnvironmentConfiguration' ) ; } /**
     * Grants permission to delete a version of a custom platform
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeletePlatformVersion.html
     */ public toDeletePlatformVersion ( ) { return this . to ( 'DeletePlatformVersion' ) ; } /**
     * Grants permission to retrieve a list of account attributes, including resource quotas
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeAccountAttributes.html
     */ public toDescribeAccountAttributes ( ) { return this . to ( 'DescribeAccountAttributes' ) ; } /**
     * Grants permission to retrieve a list of application versions stored in an AWS Elastic Beanstalk storage bucket
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplicationVersions.html
     */ public toDescribeApplicationVersions ( ) { return this . to ( 'DescribeApplicationVersions' ) ; } /**
     * Grants permission to retrieve the descriptions of existing applications
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplications.html
     */ public toDescribeApplications ( ) { return this . to ( 'DescribeApplications' ) ; } /**
     * Grants permission to retrieve descriptions of environment configuration options
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationOptions.html
     */ public toDescribeConfigurationOptions ( ) { return this . to ( 'DescribeConfigurationOptions' ) ; } /**
     * Grants permission to retrieve a description of the settings for a configuration set
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationSettings.html
     */ public toDescribeConfigurationSettings ( ) { return this . to ( 'DescribeConfigurationSettings' ) ; } /**
     * Grants permission to retrieve information about the overall health of an environment
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentHealth.html
     */ public toDescribeEnvironmentHealth ( ) { return this . to ( 'DescribeEnvironmentHealth' ) ; } /**
     * Grants permission to retrieve a list of an environment's completed and failed managed actions
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentManagedActionHistory.html
     */ public toDescribeEnvironmentManagedActionHistory ( ) { return this . to ( 'DescribeEnvironmentManagedActionHistory' ) ; } /**
     * Grants permission to retrieve a list of an environment's upcoming and in-progress managed actions
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentManagedActions.html
     */ public toDescribeEnvironmentManagedActions ( ) { return this . to ( 'DescribeEnvironmentManagedActions' ) ; } /**
     * Grants permission to retrieve a list of AWS resources for an environment
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentResources.html
     */ public toDescribeEnvironmentResources ( ) { return this . to ( 'DescribeEnvironmentResources' ) ; } /**
     * Grants permission to retrieve descriptions for existing environments
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html
     */ public toDescribeEnvironments ( ) { return this . to ( 'DescribeEnvironments' ) ; } /**
     * Grants permission to retrieve a list of event descriptions matching a set of criteria
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEvents.html
     */ public toDescribeEvents ( ) { return this . to ( 'DescribeEvents' ) ; } /**
     * Grants permission to retrieve more detailed information about the health of environment instances
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeInstancesHealth.html
     */ public toDescribeInstancesHealth ( ) { return this . to ( 'DescribeInstancesHealth' ) ; } /**
     * Grants permission to retrieve a description of a platform version
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribePlatformVersion.html
     */ public toDescribePlatformVersion ( ) { return this . to ( 'DescribePlatformVersion' ) ; } /**
     * Grants permission to disassociate an operations role with an environment
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DisassociateEnvironmentOperationsRole.html
     */ public toDisassociateEnvironmentOperationsRole ( ) { return this . to ( 'DisassociateEnvironmentOperationsRole' ) ; } /**
     * Grants permission to retrieve a list of the available solution stack names
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html
     */ public toListAvailableSolutionStacks ( ) { return this . to ( 'ListAvailableSolutionStacks' ) ; } /**
     * Grants permission to retrieve a list of the available platform branches
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListPlatformBranches.html
     */ public toListPlatformBranches ( ) { return this . to ( 'ListPlatformBranches' ) ; } /**
     * Grants permission to retrieve a list of the available platforms
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListPlatformVersions.html
     */ public toListPlatformVersions ( ) { return this . to ( 'ListPlatformVersions' ) ; } /**
     * Grants permission to retrieve a list of tags of an Elastic Beanstalk resource
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListTagsForResource.html
     */ public toListTagsForResource ( ) { return this . to ( 'ListTagsForResource' ) ; } /**
     * Grants permission to submit instance statistics for enhanced health
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced.html#health-enhanced-authz
     */ public toPutInstanceStatistics ( ) { return this . to ( 'PutInstanceStatistics' ) ; } /**
     * Grants permission to delete and recreate all of the AWS resources for an environment and to force a restart
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RebuildEnvironment.html
     */ public toRebuildEnvironment ( ) { return this . to ( 'RebuildEnvironment' ) ; } /**
     * Grants permission to remove tags from an Elastic Beanstalk resource
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateTagsForResource.html
     */ public toRemoveTags ( ) { return this . to ( 'RemoveTags' ) ; } /**
     * Grants permission to initiate a request to compile information of the deployed environment
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RequestEnvironmentInfo.html
     */ public toRequestEnvironmentInfo ( ) { return this . to ( 'RequestEnvironmentInfo' ) ; } /**
     * Grants permission to request an environment to restart the application container server running on each Amazon EC2 instance
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html
     */ public toRestartAppServer ( ) { return this . to ( 'RestartAppServer' ) ; } /**
     * Grants permission to retrieve the compiled information from a RequestEnvironmentInfo request
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RetrieveEnvironmentInfo.html
     */ public toRetrieveEnvironmentInfo ( ) { return this . to ( 'RetrieveEnvironmentInfo' ) ; } /**
     * Grants permission to swap the CNAMEs of two environments
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifFromEnvironment()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_SwapEnvironmentCNAMEs.html
     */ public toSwapEnvironmentCNAMEs ( ) { return this . to ( 'SwapEnvironmentCNAMEs' ) ; } /**
     * Grants permission to terminate an environment
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_TerminateEnvironment.html
     */ public toTerminateEnvironment ( ) { return this . to ( 'TerminateEnvironment' ) ; } /**
     * Grants permission to update an application with specified properties
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplication.html
     */ public toUpdateApplication ( ) { return this . to ( 'UpdateApplication' ) ; } /**
     * Grants permission to update the application version lifecycle policy associated with the application
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationResourceLifecycle.html
     */ public toUpdateApplicationResourceLifecycle ( ) { return this . to ( 'UpdateApplicationResourceLifecycle' ) ; } /**
     * Grants permission to update an application version with specified properties
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationVersion.html
     */ public toUpdateApplicationVersion ( ) { return this . to ( 'UpdateApplicationVersion' ) ; } /**
     * Grants permission to update a configuration template with specified properties or configuration option values
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifFromApplication()
     * - .ifFromApplicationVersion()
     * - .ifFromConfigurationTemplate()
     * - .ifFromEnvironment()
     * - .ifFromSolutionStack()
     * - .ifFromPlatform()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateConfigurationTemplate.html
     */ public toUpdateConfigurationTemplate ( ) { return this . to ( 'UpdateConfigurationTemplate' ) ; } /**
     * Grants permission to update an environment
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifFromApplicationVersion()
     * - .ifFromConfigurationTemplate()
     * - .ifFromSolutionStack()
     * - .ifFromPlatform()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateEnvironment.html
     */ public toUpdateEnvironment ( ) { return this . to ( 'UpdateEnvironment' ) ; } /**
     * Grants permission to add tags to an Elastic Beanstalk resource, remove tags, and to update tag values
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateTagsForResource.html
     */ public toUpdateTagsForResource ( ) { return this . to ( 'UpdateTagsForResource' ) ; } /**
     * Grants permission to check the validity of a set of configuration settings for a configuration template or an environment
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ValidateConfigurationSettings.html
     */ public toValidateConfigurationSettings ( ) { return this . to ( 'ValidateConfigurationSettings' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'AbortEnvironmentUpdate' , 'ApplyEnvironmentManagedAction' , 'AssociateEnvironmentOperationsRole' , 'ComposeEnvironments' , 'CreateApplication' , 'CreateApplicationVersion' , 'CreateConfigurationTemplate' , 'CreateEnvironment' , 'CreatePlatformVersion' , 'CreateStorageLocation' , 'DeleteApplication' , 'DeleteApplicationVersion' , 'DeleteConfigurationTemplate' , 'DeleteEnvironmentConfiguration' , 'DeletePlatformVersion' , 'DisassociateEnvironmentOperationsRole' , 'PutInstanceStatistics' , 'RebuildEnvironment' , 'RestartAppServer' , 'SwapEnvironmentCNAMEs' , 'TerminateEnvironment' , 'UpdateApplication' , 'UpdateApplicationResourceLifecycle' , 'UpdateApplicationVersion' , 'UpdateConfigurationTemplate' , 'UpdateEnvironment' ] , Tagging : [ 'AddTags' , 'RemoveTags' , 'UpdateTagsForResource' ] , Read : [ 'CheckDNSAvailability' , 'DescribeAccountAttributes' , 'DescribeConfigurationOptions' , 'DescribeConfigurationSettings' , 'DescribeEnvironmentHealth' , 'DescribeEnvironmentManagedActionHistory' , 'DescribeEnvironmentManagedActions' , 'DescribeEnvironmentResources' , 'DescribeEvents' , 'DescribeInstancesHealth' , 'DescribePlatformVersion' , 'ListTagsForResource' , 'RequestEnvironmentInfo' , 'RetrieveEnvironmentInfo' , 'ValidateConfigurationSettings' ] , List : [ 'DescribeApplicationVersions' , 'DescribeApplications' , 'DescribeEnvironments' , 'ListAvailableSolutionStacks' , 'ListPlatformBranches' , 'ListPlatformVersions' ] } ; param applicationName param account param region param partition public onApplication ( applicationName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:elasticbeanstalk:${ region || '*' }:${ account || '*' }:application/${ applicationName }` ) ; } param applicationName param versionLabel param account param region param partition public onApplicationversion ( applicationName , versionLabel , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:elasticbeanstalk:${ region || '*' }:${ account || '*' }:applicationversion/${ applicationName }/${ versionLabel }` ) ; } param applicationName param templateName param account param region param partition public onConfigurationtemplate ( applicationName , templateName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:elasticbeanstalk:${ region || '*' }:${ account || '*' }:configurationtemplate/${ applicationName }/${ templateName }` ) ; } param applicationName param environmentName param account param region param partition public onEnvironment ( applicationName , environmentName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:elasticbeanstalk:${ region || '*' }:${ account || '*' }:environment/${ applicationName }/${ environmentName }` ) ; } param solutionStackName param region param partition public onSolutionstack ( solutionStackName , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:elasticbeanstalk:${ region || '*' }::solutionstack/${ solutionStackName }` ) ; } param platformNameWithVersion param region param partition public onPlatform ( platformNameWithVersion , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:elasticbeanstalk:${ region || '*' }::platform/${ platformNameWithVersion }` ) ; } param value param operator public ifFromApplication ( value , operator ? ) { return this . if ( `FromApplication` , value , operator || 'ArnLike' ) ; } param value param operator public ifFromApplicationVersion ( value , operator ? ) { return this . if ( `FromApplicationVersion` , value , operator || 'ArnLike' ) ; } param value param operator public ifFromConfigurationTemplate ( value , operator ? ) { return this . if ( `FromConfigurationTemplate` , value , operator || 'ArnLike' ) ; } param value param operator public ifFromEnvironment ( value , operator ? ) { return this . if ( `FromEnvironment` , value , operator || 'ArnLike' ) ; } param value param operator public ifFromPlatform ( value , operator ? ) { return this . if ( `FromPlatform` , value , operator || 'ArnLike' ) ; } param value param operator public ifFromSolutionStack ( value , operator ? ) { return this . if ( `FromSolutionStack` , value , operator || 'ArnLike' ) ; } param value param operator public ifInApplication ( value , operator ? ) { return this . if ( `InApplication` , value , operator || 'ArnLike' ) ; } }