awsappconfig

package
v2.142.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: Apache-2.0 Imports: 19 Imported by: 2

README

AWS AppConfig Construct Library

This module is part of the AWS Cloud Development Kit project.

For a high level overview of what AWS AppConfig is and how it works, please take a look here: What is AWS AppConfig?

Basic Hosted Configuration Use Case

The main way most AWS AppConfig users utilize the service is through hosted configuration, which involves storing configuration data directly within AWS AppConfig.

An example use case:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
})

This will create the application and environment for your configuration and then deploy your configuration to the specified environment.

For more information about what these resources are: Creating feature flags and free form configuration data in AWS AppConfig.

For more information about deploying configuration: Deploying feature flags and configuration data in AWS AppConfig


For an in-depth walkthrough of specific resources and how to use them, please take a look at the following sections.

Application

AWS AppConfig Application Documentation

In AWS AppConfig, an application is simply an organizational construct like a folder. Configurations and environments are associated with the application.

When creating an application through CDK, the name and description of an application are optional.

Create a simple application:

appconfig.NewApplication(this, jsii.String("MyApplication"))

Environment

AWS AppConfig Environment Documentation

Basic environment with monitors:

var application application
var alarm alarm
var compositeAlarm compositeAlarm


appconfig.NewEnvironment(this, jsii.String("MyEnvironment"), &EnvironmentProps{
	Application: Application,
	Monitors: []monitor{
		appconfig.*monitor_FromCloudWatchAlarm(alarm),
		appconfig.*monitor_*FromCloudWatchAlarm(compositeAlarm),
	},
})

Environment monitors also support L1 CfnEnvironment.MonitorsProperty constructs through the fromCfnMonitorsProperty method. However, this is not the recommended approach for CloudWatch alarms because a role will not be auto-generated if not provided.

Deployment Strategy

AWS AppConfig Deployment Strategy Documentation

A deployment strategy defines how a configuration will roll out. The roll out is defined by four parameters: deployment type, growth factor, deployment duration, and final bake time.

Deployment strategy with predefined values:

appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
	RolloutStrategy: appconfig.RolloutStrategy_CANARY_10_PERCENT_20_MINUTES(),
})

Deployment strategy with custom values:

appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
	RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
		GrowthFactor: jsii.Number(20),
		DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
		FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(30)),
	}),
})

Referencing a deployment strategy by ID:

appconfig.DeploymentStrategy_FromDeploymentStrategyId(this, jsii.String("MyImportedDeploymentStrategy"), appconfig.DeploymentStrategyId_FromString(jsii.String("abc123")))

Referencing an AWS AppConfig predefined deployment strategy by ID:

appconfig.DeploymentStrategy_FromDeploymentStrategyId(this, jsii.String("MyImportedPredefinedDeploymentStrategy"), appconfig.DeploymentStrategyId_CANARY_10_PERCENT_20_MINUTES())

Configuration

A configuration is a higher-level construct that can either be a HostedConfiguration (stored internally through AWS AppConfig) or a SourcedConfiguration (stored in an Amazon S3 bucket, AWS Secrets Manager secrets, Systems Manager (SSM) Parameter Store parameters, SSM documents, or AWS CodePipeline). This construct manages deployments on creation.

HostedConfiguration

A hosted configuration represents configuration stored in the AWS AppConfig hosted configuration store. A hosted configuration takes in the configuration content and associated AWS AppConfig application. On construction of a hosted configuration, the configuration is deployed.

You can define hosted configuration content using any of the following ConfigurationContent methods:

  • fromFile - Defines the hosted configuration content from a file (you can specify a relative path). The content type will be determined by the file extension unless specified.
var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromFile(jsii.String("config.json")),
})
  • fromInlineText - Defines the hosted configuration from inline text. The content type will be set as text/plain.
var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
})
  • fromInlineJson - Defines the hosted configuration from inline JSON. The content type will be set as application/json unless specified.
var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineJson(jsii.String("{}")),
})
  • fromInlineYaml - Defines the hosted configuration from inline YAML. The content type will be set as application/x-yaml.
var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineYaml(jsii.String("MyConfig: This is my content.")),
})
  • fromInline - Defines the hosted configuration from user-specified content types. The content type will be set as application/octet-stream unless specified.
var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInline(jsii.String("This is my configuration content.")),
})

AWS AppConfig supports the following types of configuration profiles.

  • Feature flag: Use a feature flag configuration to turn on new features that require a timely deployment, such as a product launch or announcement.
  • Freeform: Use a freeform configuration to carefully introduce changes to your application.

A hosted configuration with type:

var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	Type: appconfig.ConfigurationType_FEATURE_FLAGS,
})

When you create a configuration and configuration profile, you can specify up to two validators. A validator ensures that your configuration data is syntactically and semantically correct. You can create validators in either JSON Schema or as an AWS Lambda function. See About validators for more information.

When you import a JSON Schema validator from a file, you can pass in a relative path.

A hosted configuration with validators:

var application application
var fn function


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	Validators: []iValidator{
		appconfig.JsonSchemaValidator_FromFile(jsii.String("schema.json")),
		appconfig.LambdaValidator_FromFunction(fn),
	},
})

You can attach a deployment strategy (as described in the previous section) to your configuration to specify how you want your configuration to roll out.

A hosted configuration with a deployment strategy:

var application application


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	DeploymentStrategy: appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
		RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
			GrowthFactor: jsii.Number(15),
			DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
			FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(15)),
		}),
	}),
})

The deployTo parameter is used to specify which environments to deploy the configuration to.

A hosted configuration with deployTo:

var application application
var env environment


appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	DeployTo: []iEnvironment{
		env,
	},
})

When more than one configuration is set to deploy to the same environment, the deployments will occur one at a time. This is done to satisfy AppConfig's constraint:

[!NOTE] You can only deploy one configuration at a time to an environment. However, you can deploy one configuration each to different environments at the same time.

The deployment order matches the order in which the configurations are declared.

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyFirstHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my first configuration content.")),
})

appconfig.NewHostedConfiguration(this, jsii.String("MySecondHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []*iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_*FromInlineText(jsii.String("This is my second configuration content.")),
})

If an application would benefit from a deployment order that differs from the declared order, you can defer the decision by using IEnvironment.addDeployment rather than the deployTo property. In this example, firstConfig will be deployed before secondConfig.

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

secondConfig := appconfig.NewHostedConfiguration(this, jsii.String("MySecondHostedConfig"), &HostedConfigurationProps{
	Application: app,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my second configuration content.")),
})

firstConfig := appconfig.NewHostedConfiguration(this, jsii.String("MyFirstHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_*FromInlineText(jsii.String("This is my first configuration content.")),
})

env.addDeployment(secondConfig)

Alternatively, you can defer multiple deployments in favor of IEnvironment.addDeployments, which allows you to declare multiple configurations in the order they will be deployed. In this example the deployment order will be firstConfig, then secondConfig, and finally thirdConfig.

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

secondConfig := appconfig.NewHostedConfiguration(this, jsii.String("MySecondHostedConfig"), &HostedConfigurationProps{
	Application: app,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my second configuration content.")),
})

thirdConfig := appconfig.NewHostedConfiguration(this, jsii.String("MyThirdHostedConfig"), &HostedConfigurationProps{
	Application: app,
	Content: appconfig.ConfigurationContent_*FromInlineText(jsii.String("This is my third configuration content.")),
})

firstConfig := appconfig.NewHostedConfiguration(this, jsii.String("MyFirstHostedConfig"), &HostedConfigurationProps{
	Application: app,
	Content: appconfig.ConfigurationContent_*FromInlineText(jsii.String("This is my first configuration content.")),
})

env.addDeployments(firstConfig, secondConfig, thirdConfig)

Any mix of deployTo, addDeployment, and addDeployments is permitted. The declaration order will be respected regardless of the approach used.

[!IMPORTANT] If none of these options are utilized, there will not be any deployments.

SourcedConfiguration

A sourced configuration represents configuration stored in any of the following:

  • Amazon S3 bucket
  • AWS Secrets Manager secret
  • Systems Manager
  • (SSM) Parameter Store parameter
  • SSM document
  • AWS CodePipeline.

A sourced configuration takes in the location source construct and optionally a version number to deploy. On construction of a sourced configuration, the configuration is deployed only if a version number is specified.

S3

Use an Amazon S3 bucket to store a configuration.

var application application


bucket := s3.NewBucket(this, jsii.String("MyBucket"), &BucketProps{
	Versioned: jsii.Boolean(true),
})

appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
})

Use an encrypted bucket:

var application application


bucket := s3.NewBucket(this, jsii.String("MyBucket"), &BucketProps{
	Versioned: jsii.Boolean(true),
	Encryption: s3.BucketEncryption_KMS,
})

appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
})
AWS Secrets Manager secret

Use a Secrets Manager secret to store a configuration.

var application application
var secret secret


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromSecret(secret),
})
SSM Parameter Store parameter

Use an SSM parameter to store a configuration.

var application application
var parameter stringParameter


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromParameter(parameter),
	VersionNumber: jsii.String("1"),
})
SSM document

Use an SSM document to store a configuration.

var application application
var document cfnDocument


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromCfnDocument(document),
})
AWS CodePipeline

Use an AWS CodePipeline pipeline to store a configuration.

var application application
var pipeline pipeline


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromPipeline(pipeline),
})

Similar to a hosted configuration, a sourced configuration can optionally take in a type, validators, a deployTo parameter, and a deployment strategy.

A sourced configuration with type:

var application application
var bucket bucket


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
	Type: appconfig.ConfigurationType_FEATURE_FLAGS,
	Name: jsii.String("MyConfig"),
	Description: jsii.String("This is my sourced configuration from CDK."),
})

A sourced configuration with validators:

var application application
var bucket bucket
var fn function


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
	Validators: []iValidator{
		appconfig.JsonSchemaValidator_FromFile(jsii.String("schema.json")),
		appconfig.LambdaValidator_FromFunction(fn),
	},
})

A sourced configuration with a deployment strategy:

var application application
var bucket bucket


appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
	DeploymentStrategy: appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
		RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
			GrowthFactor: jsii.Number(15),
			DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
			FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(15)),
		}),
	}),
})

Extension

An extension augments your ability to inject logic or behavior at different points during the AWS AppConfig workflow of creating or deploying a configuration. See: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html

AWS Lambda destination

Use an AWS Lambda as the event destination for an extension.

var fn function


appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

Lambda extension with parameters:

var fn function


appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
	Parameters: []parameter{
		appconfig.*parameter_Required(jsii.String("testParam"), jsii.String("true")),
		appconfig.*parameter_NotRequired(jsii.String("testNotRequiredParam")),
	},
})
Amazon Simple Queue Service (SQS) destination

Use a queue as the event destination for an extension.

var queue queue


appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewSqsDestination(queue),
		}),
	},
})
Amazon Simple Notification Service (SNS) destination

Use an SNS topic as the event destination for an extension.

var topic topic


appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewSnsDestination(topic),
		}),
	},
})
Amazon EventBridge destination

Use the default event bus as the event destination for an extension.

bus := events.EventBus_FromEventBusName(this, jsii.String("MyEventBus"), jsii.String("default"))

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewEventBridgeDestination(bus),
		}),
	},
})

You can also add extensions and their associations directly by calling onDeploymentComplete() or any other action point method on the AWS AppConfig application, configuration, or environment resource. To add an association to an existing extension, you can call addExtension() on the resource.

Adding an association to an AWS AppConfig application:

var application application
var extension extension
var lambdaDestination lambdaDestination


application.addExtension(extension)
application.onDeploymentComplete(lambdaDestination)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Application_AddAgentToEcs added in v2.130.0

func Application_AddAgentToEcs(taskDef awsecs.TaskDefinition)

Adds the AWS AppConfig Agent as a container to the provided ECS task definition.

func Application_GetLambdaLayerVersionArn added in v2.130.0

func Application_GetLambdaLayerVersionArn(region *string, platform Platform) *string

Retrieves the Lambda layer version Amazon Resource Name (ARN) for the AWS AppConfig Lambda extension.

Returns: Lambda layer version ARN.

func Application_IsConstruct added in v2.130.0

func Application_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func Application_IsOwnedResource added in v2.130.0

func Application_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func Application_IsResource added in v2.130.0

func Application_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func CfnApplication_CFN_RESOURCE_TYPE_NAME

func CfnApplication_CFN_RESOURCE_TYPE_NAME() *string

func CfnApplication_IsCfnElement

func CfnApplication_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnApplication_IsCfnResource

func CfnApplication_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnApplication_IsConstruct

func CfnApplication_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnConfigurationProfile_CFN_RESOURCE_TYPE_NAME

func CfnConfigurationProfile_CFN_RESOURCE_TYPE_NAME() *string

func CfnConfigurationProfile_IsCfnElement

func CfnConfigurationProfile_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnConfigurationProfile_IsCfnResource

func CfnConfigurationProfile_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnConfigurationProfile_IsConstruct

func CfnConfigurationProfile_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnDeploymentStrategy_CFN_RESOURCE_TYPE_NAME

func CfnDeploymentStrategy_CFN_RESOURCE_TYPE_NAME() *string

func CfnDeploymentStrategy_IsCfnElement

func CfnDeploymentStrategy_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDeploymentStrategy_IsCfnResource

func CfnDeploymentStrategy_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnDeploymentStrategy_IsConstruct

func CfnDeploymentStrategy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnDeployment_CFN_RESOURCE_TYPE_NAME

func CfnDeployment_CFN_RESOURCE_TYPE_NAME() *string

func CfnDeployment_IsCfnElement

func CfnDeployment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDeployment_IsCfnResource

func CfnDeployment_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnDeployment_IsConstruct

func CfnDeployment_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnEnvironment_CFN_RESOURCE_TYPE_NAME

func CfnEnvironment_CFN_RESOURCE_TYPE_NAME() *string

func CfnEnvironment_IsCfnElement

func CfnEnvironment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEnvironment_IsCfnResource

func CfnEnvironment_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnEnvironment_IsConstruct

func CfnEnvironment_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnExtensionAssociation_CFN_RESOURCE_TYPE_NAME added in v2.78.0

func CfnExtensionAssociation_CFN_RESOURCE_TYPE_NAME() *string

func CfnExtensionAssociation_IsCfnElement added in v2.78.0

func CfnExtensionAssociation_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnExtensionAssociation_IsCfnResource added in v2.78.0

func CfnExtensionAssociation_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnExtensionAssociation_IsConstruct added in v2.78.0

func CfnExtensionAssociation_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnExtension_CFN_RESOURCE_TYPE_NAME added in v2.78.0

func CfnExtension_CFN_RESOURCE_TYPE_NAME() *string

func CfnExtension_IsCfnElement added in v2.78.0

func CfnExtension_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnExtension_IsCfnResource added in v2.78.0

func CfnExtension_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnExtension_IsConstruct added in v2.78.0

func CfnExtension_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnHostedConfigurationVersion_CFN_RESOURCE_TYPE_NAME

func CfnHostedConfigurationVersion_CFN_RESOURCE_TYPE_NAME() *string

func CfnHostedConfigurationVersion_IsCfnElement

func CfnHostedConfigurationVersion_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnHostedConfigurationVersion_IsCfnResource

func CfnHostedConfigurationVersion_IsCfnResource(x interface{}) *bool

Check whether the given object is a CfnResource.

func CfnHostedConfigurationVersion_IsConstruct

func CfnHostedConfigurationVersion_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func DeploymentStrategy_IsConstruct added in v2.130.0

func DeploymentStrategy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func DeploymentStrategy_IsOwnedResource added in v2.130.0

func DeploymentStrategy_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func DeploymentStrategy_IsResource added in v2.130.0

func DeploymentStrategy_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Environment_IsConstruct added in v2.130.0

func Environment_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func Environment_IsOwnedResource added in v2.130.0

func Environment_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func Environment_IsResource added in v2.130.0

func Environment_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Extension_IsConstruct added in v2.130.0

func Extension_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func Extension_IsOwnedResource added in v2.130.0

func Extension_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func Extension_IsResource added in v2.130.0

func Extension_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func HostedConfiguration_IsConstruct added in v2.130.0

func HostedConfiguration_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func NewAction_Override added in v2.130.0

func NewAction_Override(a Action, props *ActionProps)

func NewApplication_Override added in v2.130.0

func NewApplication_Override(a Application, scope constructs.Construct, id *string, props *ApplicationProps)

func NewCfnApplication_Override

func NewCfnApplication_Override(c CfnApplication, scope constructs.Construct, id *string, props *CfnApplicationProps)

func NewCfnConfigurationProfile_Override

func NewCfnConfigurationProfile_Override(c CfnConfigurationProfile, scope constructs.Construct, id *string, props *CfnConfigurationProfileProps)

func NewCfnDeploymentStrategy_Override

func NewCfnDeploymentStrategy_Override(c CfnDeploymentStrategy, scope constructs.Construct, id *string, props *CfnDeploymentStrategyProps)

func NewCfnDeployment_Override

func NewCfnDeployment_Override(c CfnDeployment, scope constructs.Construct, id *string, props *CfnDeploymentProps)

func NewCfnEnvironment_Override

func NewCfnEnvironment_Override(c CfnEnvironment, scope constructs.Construct, id *string, props *CfnEnvironmentProps)

func NewCfnExtensionAssociation_Override added in v2.78.0

func NewCfnExtensionAssociation_Override(c CfnExtensionAssociation, scope constructs.Construct, id *string, props *CfnExtensionAssociationProps)

func NewCfnExtension_Override added in v2.78.0

func NewCfnExtension_Override(c CfnExtension, scope constructs.Construct, id *string, props *CfnExtensionProps)

func NewCfnHostedConfigurationVersion_Override

func NewCfnHostedConfigurationVersion_Override(c CfnHostedConfigurationVersion, scope constructs.Construct, id *string, props *CfnHostedConfigurationVersionProps)

func NewConfigurationContent_Override added in v2.130.0

func NewConfigurationContent_Override(c ConfigurationContent)

func NewConfigurationSource_Override added in v2.130.0

func NewConfigurationSource_Override(c ConfigurationSource)

func NewDeploymentStrategyId_Override added in v2.130.0

func NewDeploymentStrategyId_Override(d DeploymentStrategyId)

func NewDeploymentStrategy_Override added in v2.130.0

func NewDeploymentStrategy_Override(d DeploymentStrategy, scope constructs.Construct, id *string, props *DeploymentStrategyProps)

func NewEnvironment_Override added in v2.130.0

func NewEnvironment_Override(e Environment, scope constructs.Construct, id *string, props *EnvironmentProps)

func NewEventBridgeDestination_Override added in v2.130.0

func NewEventBridgeDestination_Override(e EventBridgeDestination, bus awsevents.IEventBus)

func NewExtensibleBase_Override added in v2.130.0

func NewExtensibleBase_Override(e ExtensibleBase, scope constructs.Construct, resourceArn *string, resourceName *string)

func NewExtension_Override added in v2.130.0

func NewExtension_Override(e Extension, scope constructs.Construct, id *string, props *ExtensionProps)

func NewHostedConfiguration_Override added in v2.130.0

func NewHostedConfiguration_Override(h HostedConfiguration, scope constructs.Construct, id *string, props *HostedConfigurationProps)

func NewJsonSchemaValidator_Override added in v2.130.0

func NewJsonSchemaValidator_Override(j JsonSchemaValidator)

func NewLambdaDestination_Override added in v2.130.0

func NewLambdaDestination_Override(l LambdaDestination, func_ awslambda.IFunction)

func NewLambdaValidator_Override added in v2.130.0

func NewLambdaValidator_Override(l LambdaValidator)

func NewMonitor_Override added in v2.130.0

func NewMonitor_Override(m Monitor)

func NewRolloutStrategy_Override added in v2.130.0

func NewRolloutStrategy_Override(r RolloutStrategy)

func NewSnsDestination_Override added in v2.130.0

func NewSnsDestination_Override(s SnsDestination, topic awssns.ITopic)

func NewSourcedConfiguration_Override added in v2.130.0

func NewSourcedConfiguration_Override(s SourcedConfiguration, scope constructs.Construct, id *string, props *SourcedConfigurationProps)

func NewSqsDestination_Override added in v2.130.0

func NewSqsDestination_Override(s SqsDestination, queue awssqs.IQueue)

func SourcedConfiguration_IsConstruct added in v2.130.0

func SourcedConfiguration_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

Types

type Action added in v2.130.0

type Action interface {
	// The action points that will trigger the extension action.
	ActionPoints() *[]ActionPoint
	// The description for the action.
	Description() *string
	// The event destination for the action.
	EventDestination() IEventDestination
	// The execution role for the action.
	ExecutionRole() awsiam.IRole
	// The flag that specifies whether to create the execution role.
	InvokeWithoutExecutionRole() *bool
	// The name for the action.
	Name() *string
}

Defines an action for an extension.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

func NewAction added in v2.130.0

func NewAction(props *ActionProps) Action

type ActionPoint added in v2.130.0

type ActionPoint string

Defines Extension action points.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

See: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about.html#working-with-appconfig-extensions-how-it-works-step-2

const (
	ActionPoint_PRE_CREATE_HOSTED_CONFIGURATION_VERSION ActionPoint = "PRE_CREATE_HOSTED_CONFIGURATION_VERSION"
	ActionPoint_PRE_START_DEPLOYMENT                    ActionPoint = "PRE_START_DEPLOYMENT"
	ActionPoint_ON_DEPLOYMENT_START                     ActionPoint = "ON_DEPLOYMENT_START"
	ActionPoint_ON_DEPLOYMENT_STEP                      ActionPoint = "ON_DEPLOYMENT_STEP"
	ActionPoint_ON_DEPLOYMENT_BAKING                    ActionPoint = "ON_DEPLOYMENT_BAKING"
	ActionPoint_ON_DEPLOYMENT_COMPLETE                  ActionPoint = "ON_DEPLOYMENT_COMPLETE"
	ActionPoint_ON_DEPLOYMENT_ROLLED_BACK               ActionPoint = "ON_DEPLOYMENT_ROLLED_BACK"
)

type ActionProps added in v2.130.0

type ActionProps struct {
	// The action points that will trigger the extension action.
	ActionPoints *[]ActionPoint `field:"required" json:"actionPoints" yaml:"actionPoints"`
	// The event destination for the action.
	EventDestination IEventDestination `field:"required" json:"eventDestination" yaml:"eventDestination"`
	// The description for the action.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The execution role for the action.
	// Default: - A role is generated.
	//
	ExecutionRole awsiam.IRole `field:"optional" json:"executionRole" yaml:"executionRole"`
	// The flag that specifies whether or not to create the execution role.
	//
	// If set to true, then the role will not be auto-generated under the assumption
	// there is already the corresponding resource-based policy attached to the event
	// destination. If false, the execution role will be generated if not provided.
	// Default: false.
	//
	InvokeWithoutExecutionRole *bool `field:"optional" json:"invokeWithoutExecutionRole" yaml:"invokeWithoutExecutionRole"`
	// The name for the action.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
}

Properties for the Action construct.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

type Application added in v2.130.0

type Application interface {
	awscdk.Resource
	IApplication
	IExtensible
	// The Amazon Resource Name (ARN) of the application.
	ApplicationArn() *string
	// The ID of the application.
	ApplicationId() *string
	// The description of the application.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	Extensible() ExtensibleBase
	SetExtensible(val ExtensibleBase)
	// The name of the application.
	Name() *string
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Adds an environment.
	AddEnvironment(id *string, options *EnvironmentOptions) IEnvironment
	// Adds an existing environment.
	AddExistingEnvironment(environment IEnvironment)
	// Adds an extension association to the application.
	AddExtension(extension IExtension)
	// Adds a hosted configuration.
	AddHostedConfiguration(id *string, options *HostedConfigurationOptions) HostedConfiguration
	// Adds a sourced configuration.
	AddSourcedConfiguration(id *string, options *SourcedConfigurationOptions) SourcedConfiguration
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Returns the list of associated environments.
	Environments() *[]IEnvironment
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds an extension defined by the action point and event destination and also creates an extension association to an application.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to an application.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to an application.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
	// Returns a string representation of this construct.
	ToString() *string
}

An AWS AppConfig application.

Example:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
})

See: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-application.html

func NewApplication added in v2.130.0

func NewApplication(scope constructs.Construct, id *string, props *ApplicationProps) Application

type ApplicationProps added in v2.130.0

type ApplicationProps struct {
	// The name of the application.
	// Default: - A name is generated.
	//
	ApplicationName *string `field:"optional" json:"applicationName" yaml:"applicationName"`
	// The description for the application.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
}

Properties for the Application construct.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

applicationProps := &ApplicationProps{
	ApplicationName: jsii.String("applicationName"),
	Description: jsii.String("description"),
}

type CfnApplication

type CfnApplication interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggableV2
	// The application ID.
	AttrApplicationId() *string
	// Tag Manager which manages the tags for this resource.
	CdkTagManager() awscdk.TagManager
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// A description of the application.
	Description() *string
	SetDescription(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// A name for the application.
	Name() *string
	SetName(val *string)
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Metadata to assign to the application.
	Tags() *[]*awscdk.CfnTag
	SetTags(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

The `AWS::AppConfig::Application` resource creates an application.

In AWS AppConfig , an application is simply an organizational construct like a folder. This organizational construct has a relationship with some unit of executable code. For example, you could create an application called MyMobileApp to organize and manage configuration data for a mobile application installed by your users.

AWS AppConfig requires that you create resources and deploy a configuration in the following order:

- Create an application - Create an environment - Create a configuration profile - Choose a pre-defined deployment strategy or create your own - Deploy the configuration

For more information, see [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnApplication := awscdk.Aws_appconfig.NewCfnApplication(this, jsii.String("MyCfnApplication"), &CfnApplicationProps{
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html

func NewCfnApplication

func NewCfnApplication(scope constructs.Construct, id *string, props *CfnApplicationProps) CfnApplication

type CfnApplicationProps

type CfnApplicationProps struct {
	// A name for the application.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-name
	//
	Name *string `field:"required" json:"name" yaml:"name"`
	// A description of the application.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Metadata to assign to the application.
	//
	// Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnApplication`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnApplicationProps := &CfnApplicationProps{
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html

type CfnConfigurationProfile

type CfnConfigurationProfile interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggableV2
	// The application ID.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The configuration profile ID.
	AttrConfigurationProfileId() *string
	// The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store.
	//
	// This attribute is only used for `hosted` configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service.
	AttrKmsKeyArn() *string
	// Tag Manager which manages the tags for this resource.
	CdkTagManager() awscdk.TagManager
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// A description of the configuration profile.
	Description() *string
	SetDescription(val *string)
	// The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.
	KmsKeyIdentifier() *string
	SetKmsKeyIdentifier(val *string)
	// A URI to locate the configuration.
	//
	// You can specify the following:.
	LocationUri() *string
	SetLocationUri(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// A name for the configuration profile.
	Name() *string
	SetName(val *string)
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The ARN of an IAM role with permission to access the configuration at the specified `LocationUri` .
	RetrievalRoleArn() *string
	SetRetrievalRoleArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Metadata to assign to the configuration profile.
	Tags() *[]*awscdk.CfnTag
	SetTags(val *[]*awscdk.CfnTag)
	// The type of configurations contained in the profile.
	Type() *string
	SetType(val *string)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// A list of methods for validating the configuration.
	Validators() interface{}
	SetValidators(val interface{})
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

The `AWS::AppConfig::ConfigurationProfile` resource creates a configuration profile that enables AWS AppConfig to access the configuration source.

Valid configuration sources include AWS Systems Manager (SSM) documents, SSM Parameter Store parameters, and Amazon S3 . A configuration profile includes the following information.

- The Uri location of the configuration data. - The AWS Identity and Access Management ( IAM ) role that provides access to the configuration data. - A validator for the configuration data. Available validators include either a JSON Schema or the Amazon Resource Name (ARN) of an AWS Lambda function.

AWS AppConfig requires that you create resources and deploy a configuration in the following order:

- Create an application - Create an environment - Create a configuration profile - Choose a pre-defined deployment strategy or create your own - Deploy the configuration

For more information, see [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnConfigurationProfile := awscdk.Aws_appconfig.NewCfnConfigurationProfile(this, jsii.String("MyCfnConfigurationProfile"), &CfnConfigurationProfileProps{
	ApplicationId: jsii.String("applicationId"),
	LocationUri: jsii.String("locationUri"),
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	KmsKeyIdentifier: jsii.String("kmsKeyIdentifier"),
	RetrievalRoleArn: jsii.String("retrievalRoleArn"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
	Type: jsii.String("type"),
	Validators: []interface{}{
		&ValidatorsProperty{
			Content: jsii.String("content"),
			Type: jsii.String("type"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html

func NewCfnConfigurationProfile

func NewCfnConfigurationProfile(scope constructs.Construct, id *string, props *CfnConfigurationProfileProps) CfnConfigurationProfile

type CfnConfigurationProfileProps

type CfnConfigurationProfileProps struct {
	// The application ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-applicationid
	//
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// A URI to locate the configuration. You can specify the following:.
	//
	// - For the AWS AppConfig hosted configuration store and for feature flags, specify `hosted` .
	// - For an AWS Systems Manager Parameter Store parameter, specify either the parameter name in the format `ssm-parameter://<parameter name>` or the ARN.
	// - For an AWS CodePipeline pipeline, specify the URI in the following format: `codepipeline` ://<pipeline name>.
	// - For an AWS Secrets Manager secret, specify the URI in the following format: `secretsmanager` ://<secret name>.
	// - For an Amazon S3 object, specify the URI in the following format: `s3://<bucket>/<objectKey>` . Here is an example: `s3://my-bucket/my-app/us-east-1/my-config.json`
	// - For an SSM document, specify either the document name in the format `ssm-document://<document name>` or the Amazon Resource Name (ARN).
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-locationuri
	//
	LocationUri *string `field:"required" json:"locationUri" yaml:"locationUri"`
	// A name for the configuration profile.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-name
	//
	Name *string `field:"required" json:"name" yaml:"name"`
	// A description of the configuration profile.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-kmskeyidentifier
	//
	KmsKeyIdentifier *string `field:"optional" json:"kmsKeyIdentifier" yaml:"kmsKeyIdentifier"`
	// The ARN of an IAM role with permission to access the configuration at the specified `LocationUri` .
	//
	// > A retrieval role ARN is not required for configurations stored in the AWS AppConfig hosted configuration store. It is required for all other sources that store your configuration.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-retrievalrolearn
	//
	RetrievalRoleArn *string `field:"optional" json:"retrievalRoleArn" yaml:"retrievalRoleArn"`
	// Metadata to assign to the configuration profile.
	//
	// Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
	// The type of configurations contained in the profile.
	//
	// AWS AppConfig supports `feature flags` and `freeform` configurations. We recommend you create feature flag configurations to enable or disable new features and freeform configurations to distribute configurations to an application. When calling this API, enter one of the following values for `Type` :
	//
	// `AWS.AppConfig.FeatureFlags`
	//
	// `AWS.Freeform`
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-type
	//
	Type *string `field:"optional" json:"type" yaml:"type"`
	// A list of methods for validating the configuration.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-validators
	//
	Validators interface{} `field:"optional" json:"validators" yaml:"validators"`
}

Properties for defining a `CfnConfigurationProfile`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnConfigurationProfileProps := &CfnConfigurationProfileProps{
	ApplicationId: jsii.String("applicationId"),
	LocationUri: jsii.String("locationUri"),
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	KmsKeyIdentifier: jsii.String("kmsKeyIdentifier"),
	RetrievalRoleArn: jsii.String("retrievalRoleArn"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
	Type: jsii.String("type"),
	Validators: []interface{}{
		&ValidatorsProperty{
			Content: jsii.String("content"),
			Type: jsii.String("type"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html

type CfnConfigurationProfile_ValidatorsProperty

type CfnConfigurationProfile_ValidatorsProperty struct {
	// Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html#cfn-appconfig-configurationprofile-validators-content
	//
	Content *string `field:"optional" json:"content" yaml:"content"`
	// AWS AppConfig supports validators of type `JSON_SCHEMA` and `LAMBDA`.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html#cfn-appconfig-configurationprofile-validators-type
	//
	Type *string `field:"optional" json:"type" yaml:"type"`
}

A validator provides a syntactic or semantic check to ensure the configuration that you want to deploy functions as intended.

To validate your application configuration data, you provide a schema or an AWS Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid. For more information, see [About validators](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-profile.html#appconfig-creating-configuration-and-profile-validators) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

validatorsProperty := &ValidatorsProperty{
	Content: jsii.String("content"),
	Type: jsii.String("type"),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html

type CfnDeployment

type CfnDeployment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggableV2
	// The application ID.
	ApplicationId() *string
	SetApplicationId(val *string)
	AttrId() *string
	// Tag Manager which manages the tags for this resource.
	CdkTagManager() awscdk.TagManager
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The configuration profile ID.
	ConfigurationProfileId() *string
	SetConfigurationProfileId(val *string)
	// The configuration version to deploy.
	ConfigurationVersion() *string
	SetConfigurationVersion(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The deployment strategy ID.
	DeploymentStrategyId() *string
	SetDeploymentStrategyId(val *string)
	// A description of the deployment.
	Description() *string
	SetDescription(val *string)
	// A map of dynamic extension parameter names to values to pass to associated extensions with `PRE_START_DEPLOYMENT` actions.
	DynamicExtensionParameters() interface{}
	SetDynamicExtensionParameters(val interface{})
	// The environment ID.
	EnvironmentId() *string
	SetEnvironmentId(val *string)
	// The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.
	KmsKeyIdentifier() *string
	SetKmsKeyIdentifier(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Metadata to assign to the deployment.
	Tags() *[]*awscdk.CfnTag
	SetTags(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

The `AWS::AppConfig::Deployment` resource starts a deployment.

Starting a deployment in AWS AppConfig calls the `StartDeployment` API action. This call includes the IDs of the AWS AppConfig application, the environment, the configuration profile, and (optionally) the configuration data version to deploy. The call also includes the ID of the deployment strategy to use, which determines how the configuration data is deployed.

AWS AppConfig monitors the distribution to all hosts and reports status. If a distribution fails, then AWS AppConfig rolls back the configuration.

AWS AppConfig requires that you create resources and deploy a configuration in the following order:

- Create an application - Create an environment - Create a configuration profile - Choose a pre-defined deployment strategy or create your own - Deploy the configuration

For more information, see [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnDeployment := awscdk.Aws_appconfig.NewCfnDeployment(this, jsii.String("MyCfnDeployment"), &CfnDeploymentProps{
	ApplicationId: jsii.String("applicationId"),
	ConfigurationProfileId: jsii.String("configurationProfileId"),
	ConfigurationVersion: jsii.String("configurationVersion"),
	DeploymentStrategyId: jsii.String("deploymentStrategyId"),
	EnvironmentId: jsii.String("environmentId"),

	// the properties below are optional
	Description: jsii.String("description"),
	DynamicExtensionParameters: []interface{}{
		&DynamicExtensionParametersProperty{
			ExtensionReference: jsii.String("extensionReference"),
			ParameterName: jsii.String("parameterName"),
			ParameterValue: jsii.String("parameterValue"),
		},
	},
	KmsKeyIdentifier: jsii.String("kmsKeyIdentifier"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html

func NewCfnDeployment

func NewCfnDeployment(scope constructs.Construct, id *string, props *CfnDeploymentProps) CfnDeployment

type CfnDeploymentProps

type CfnDeploymentProps struct {
	// The application ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-applicationid
	//
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The configuration profile ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-configurationprofileid
	//
	ConfigurationProfileId *string `field:"required" json:"configurationProfileId" yaml:"configurationProfileId"`
	// The configuration version to deploy.
	//
	// If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-configurationversion
	//
	ConfigurationVersion *string `field:"required" json:"configurationVersion" yaml:"configurationVersion"`
	// The deployment strategy ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-deploymentstrategyid
	//
	DeploymentStrategyId *string `field:"required" json:"deploymentStrategyId" yaml:"deploymentStrategyId"`
	// The environment ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-environmentid
	//
	EnvironmentId *string `field:"required" json:"environmentId" yaml:"environmentId"`
	// A description of the deployment.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// A map of dynamic extension parameter names to values to pass to associated extensions with `PRE_START_DEPLOYMENT` actions.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters
	//
	DynamicExtensionParameters interface{} `field:"optional" json:"dynamicExtensionParameters" yaml:"dynamicExtensionParameters"`
	// The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-kmskeyidentifier
	//
	KmsKeyIdentifier *string `field:"optional" json:"kmsKeyIdentifier" yaml:"kmsKeyIdentifier"`
	// Metadata to assign to the deployment.
	//
	// Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnDeployment`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnDeploymentProps := &CfnDeploymentProps{
	ApplicationId: jsii.String("applicationId"),
	ConfigurationProfileId: jsii.String("configurationProfileId"),
	ConfigurationVersion: jsii.String("configurationVersion"),
	DeploymentStrategyId: jsii.String("deploymentStrategyId"),
	EnvironmentId: jsii.String("environmentId"),

	// the properties below are optional
	Description: jsii.String("description"),
	DynamicExtensionParameters: []interface{}{
		&DynamicExtensionParametersProperty{
			ExtensionReference: jsii.String("extensionReference"),
			ParameterName: jsii.String("parameterName"),
			ParameterValue: jsii.String("parameterValue"),
		},
	},
	KmsKeyIdentifier: jsii.String("kmsKeyIdentifier"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html

type CfnDeploymentStrategy

type CfnDeploymentStrategy interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggableV2
	// The deployment strategy ID.
	AttrId() *string
	// Tag Manager which manages the tags for this resource.
	CdkTagManager() awscdk.TagManager
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// Total amount of time for a deployment to last.
	DeploymentDurationInMinutes() *float64
	SetDeploymentDurationInMinutes(val *float64)
	// A description of the deployment strategy.
	Description() *string
	SetDescription(val *string)
	// Specifies the amount of time AWS AppConfig monitors for Amazon CloudWatch alarms after the configuration has been deployed to 100% of its targets, before considering the deployment to be complete.
	FinalBakeTimeInMinutes() *float64
	SetFinalBakeTimeInMinutes(val *float64)
	// The percentage of targets to receive a deployed configuration during each interval.
	GrowthFactor() *float64
	SetGrowthFactor(val *float64)
	// The algorithm used to define how percentage grows over time.
	//
	// AWS AppConfig supports the following growth types:.
	GrowthType() *string
	SetGrowthType(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// A name for the deployment strategy.
	Name() *string
	SetName(val *string)
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// Save the deployment strategy to a Systems Manager (SSM) document.
	ReplicateTo() *string
	SetReplicateTo(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Assigns metadata to an AWS AppConfig resource.
	Tags() *[]*awscdk.CfnTag
	SetTags(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

The `AWS::AppConfig::DeploymentStrategy` resource creates an AWS AppConfig deployment strategy.

A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

AWS AppConfig requires that you create resources and deploy a configuration in the following order:

- Create an application - Create an environment - Create a configuration profile - Choose a pre-defined deployment strategy or create your own - Deploy the configuration

For more information, see [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnDeploymentStrategy := awscdk.Aws_appconfig.NewCfnDeploymentStrategy(this, jsii.String("MyCfnDeploymentStrategy"), &CfnDeploymentStrategyProps{
	DeploymentDurationInMinutes: jsii.Number(123),
	GrowthFactor: jsii.Number(123),
	Name: jsii.String("name"),
	ReplicateTo: jsii.String("replicateTo"),

	// the properties below are optional
	Description: jsii.String("description"),
	FinalBakeTimeInMinutes: jsii.Number(123),
	GrowthType: jsii.String("growthType"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html

func NewCfnDeploymentStrategy

func NewCfnDeploymentStrategy(scope constructs.Construct, id *string, props *CfnDeploymentStrategyProps) CfnDeploymentStrategy

type CfnDeploymentStrategyProps

type CfnDeploymentStrategyProps struct {
	// Total amount of time for a deployment to last.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-deploymentdurationinminutes
	//
	DeploymentDurationInMinutes *float64 `field:"required" json:"deploymentDurationInMinutes" yaml:"deploymentDurationInMinutes"`
	// The percentage of targets to receive a deployed configuration during each interval.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-growthfactor
	//
	GrowthFactor *float64 `field:"required" json:"growthFactor" yaml:"growthFactor"`
	// A name for the deployment strategy.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-name
	//
	Name *string `field:"required" json:"name" yaml:"name"`
	// Save the deployment strategy to a Systems Manager (SSM) document.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-replicateto
	//
	ReplicateTo *string `field:"required" json:"replicateTo" yaml:"replicateTo"`
	// A description of the deployment strategy.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Specifies the amount of time AWS AppConfig monitors for Amazon CloudWatch alarms after the configuration has been deployed to 100% of its targets, before considering the deployment to be complete.
	//
	// If an alarm is triggered during this time, AWS AppConfig rolls back the deployment. You must configure permissions for AWS AppConfig to roll back based on CloudWatch alarms. For more information, see [Configuring permissions for rollback based on Amazon CloudWatch alarms](https://docs.aws.amazon.com/appconfig/latest/userguide/getting-started-with-appconfig-cloudwatch-alarms-permissions.html) in the *AWS AppConfig User Guide* .
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-finalbaketimeinminutes
	//
	FinalBakeTimeInMinutes *float64 `field:"optional" json:"finalBakeTimeInMinutes" yaml:"finalBakeTimeInMinutes"`
	// The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types:.
	//
	// *Linear* : For this type, AWS AppConfig processes the deployment by dividing the total number of targets by the value specified for `Step percentage` . For example, a linear deployment that uses a `Step percentage` of 10 deploys the configuration to 10 percent of the hosts. After those deployments are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the targets have successfully received the configuration.
	//
	// *Exponential* : For this type, AWS AppConfig processes the deployment exponentially using the following formula: `G*(2^N)` . In this formula, `G` is the growth factor specified by the user and `N` is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:
	//
	// `2*(2^0)`
	//
	// `2*(2^1)`
	//
	// `2*(2^2)`
	//
	// Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-growthtype
	//
	GrowthType *string `field:"optional" json:"growthType" yaml:"growthType"`
	// Assigns metadata to an AWS AppConfig resource.
	//
	// Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnDeploymentStrategy`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnDeploymentStrategyProps := &CfnDeploymentStrategyProps{
	DeploymentDurationInMinutes: jsii.Number(123),
	GrowthFactor: jsii.Number(123),
	Name: jsii.String("name"),
	ReplicateTo: jsii.String("replicateTo"),

	// the properties below are optional
	Description: jsii.String("description"),
	FinalBakeTimeInMinutes: jsii.Number(123),
	GrowthType: jsii.String("growthType"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html

type CfnDeployment_DynamicExtensionParametersProperty added in v2.134.0

type CfnDeployment_DynamicExtensionParametersProperty struct {
	// The ARN or ID of the extension for which you are inserting a dynamic parameter.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-extensionreference
	//
	ExtensionReference *string `field:"optional" json:"extensionReference" yaml:"extensionReference"`
	// The parameter name.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-parametername
	//
	ParameterName *string `field:"optional" json:"parameterName" yaml:"parameterName"`
	// The parameter value.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-parametervalue
	//
	ParameterValue *string `field:"optional" json:"parameterValue" yaml:"parameterValue"`
}

A map of dynamic extension parameter names to values to pass to associated extensions with `PRE_START_DEPLOYMENT` actions.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dynamicExtensionParametersProperty := &DynamicExtensionParametersProperty{
	ExtensionReference: jsii.String("extensionReference"),
	ParameterName: jsii.String("parameterName"),
	ParameterValue: jsii.String("parameterValue"),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html

type CfnEnvironment

type CfnEnvironment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggableV2
	// The application ID.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The environment ID.
	AttrEnvironmentId() *string
	// Tag Manager which manages the tags for this resource.
	CdkTagManager() awscdk.TagManager
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// A description of the environment.
	Description() *string
	SetDescription(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// Amazon CloudWatch alarms to monitor during the deployment process.
	Monitors() interface{}
	SetMonitors(val interface{})
	// A name for the environment.
	Name() *string
	SetName(val *string)
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Metadata to assign to the environment.
	Tags() *[]*awscdk.CfnTag
	SetTags(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

The `AWS::AppConfig::Environment` resource creates an environment, which is a logical deployment group of AWS AppConfig targets, such as applications in a `Beta` or `Production` environment.

You define one or more environments for each AWS AppConfig application. You can also define environments for application subcomponents such as the `Web` , `Mobile` and `Back-end` components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

AWS AppConfig requires that you create resources and deploy a configuration in the following order:

- Create an application - Create an environment - Create a configuration profile - Choose a pre-defined deployment strategy or create your own - Deploy the configuration

For more information, see [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEnvironment := awscdk.Aws_appconfig.NewCfnEnvironment(this, jsii.String("MyCfnEnvironment"), &CfnEnvironmentProps{
	ApplicationId: jsii.String("applicationId"),
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	Monitors: []interface{}{
		&MonitorsProperty{
			AlarmArn: jsii.String("alarmArn"),
			AlarmRoleArn: jsii.String("alarmRoleArn"),
		},
	},
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html

func NewCfnEnvironment

func NewCfnEnvironment(scope constructs.Construct, id *string, props *CfnEnvironmentProps) CfnEnvironment

type CfnEnvironmentProps

type CfnEnvironmentProps struct {
	// The application ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-applicationid
	//
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// A name for the environment.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-name
	//
	Name *string `field:"required" json:"name" yaml:"name"`
	// A description of the environment.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Amazon CloudWatch alarms to monitor during the deployment process.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-monitors
	//
	Monitors interface{} `field:"optional" json:"monitors" yaml:"monitors"`
	// Metadata to assign to the environment.
	//
	// Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnEnvironment`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEnvironmentProps := &CfnEnvironmentProps{
	ApplicationId: jsii.String("applicationId"),
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	Monitors: []interface{}{
		&MonitorsProperty{
			AlarmArn: jsii.String("alarmArn"),
			AlarmRoleArn: jsii.String("alarmRoleArn"),
		},
	},
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html

type CfnEnvironment_MonitorProperty added in v2.127.0

type CfnEnvironment_MonitorProperty struct {
	// Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitor.html#cfn-appconfig-environment-monitor-alarmarn
	//
	AlarmArn *string `field:"required" json:"alarmArn" yaml:"alarmArn"`
	// ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor `AlarmArn` .
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitor.html#cfn-appconfig-environment-monitor-alarmrolearn
	//
	AlarmRoleArn *string `field:"optional" json:"alarmRoleArn" yaml:"alarmRoleArn"`
}

Amazon CloudWatch alarms to monitor during the deployment process.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

monitorProperty := &MonitorProperty{
	AlarmArn: jsii.String("alarmArn"),

	// the properties below are optional
	AlarmRoleArn: jsii.String("alarmRoleArn"),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitor.html

type CfnEnvironment_MonitorsProperty

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

monitorsProperty := &MonitorsProperty{
	AlarmArn: jsii.String("alarmArn"),
	AlarmRoleArn: jsii.String("alarmRoleArn"),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html

type CfnExtension added in v2.78.0

type CfnExtension interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggable
	// The actions defined in the extension.
	Actions() interface{}
	SetActions(val interface{})
	// The system-generated Amazon Resource Name (ARN) for the extension.
	AttrArn() *string
	// The system-generated ID of the extension.
	AttrId() *string
	// The extension version number.
	AttrVersionNumber() *float64
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// Information about the extension.
	Description() *string
	SetDescription(val *string)
	// You can omit this field when you create an extension.
	LatestVersionNumber() *float64
	SetLatestVersionNumber(val *float64)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// A name for the extension.
	Name() *string
	SetName(val *string)
	// The tree node.
	Node() constructs.Node
	// The parameters accepted by the extension.
	Parameters() interface{}
	SetParameters(val interface{})
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Tag Manager which manages the tags for this resource.
	Tags() awscdk.TagManager
	// Adds one or more tags for the specified extension.
	TagsRaw() *[]*awscdk.CfnTag
	SetTagsRaw(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

Creates an AWS AppConfig extension.

An extension augments your ability to inject logic or behavior at different points during the AWS AppConfig workflow of creating or deploying a configuration.

You can create your own extensions or use the AWS authored extensions provided by AWS AppConfig . For an AWS AppConfig extension that uses AWS Lambda , you must create a Lambda function to perform any computation and processing defined in the extension. If you plan to create custom versions of the AWS authored notification extensions, you only need to specify an Amazon Resource Name (ARN) in the `Uri` field for the new extension version.

- For a custom EventBridge notification extension, enter the ARN of the EventBridge default events in the `Uri` field. - For a custom Amazon SNS notification extension, enter the ARN of an Amazon SNS topic in the `Uri` field. - For a custom Amazon SQS notification extension, enter the ARN of an Amazon SQS message queue in the `Uri` field.

For more information about extensions, see [Extending workflows](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var actions interface{}

cfnExtension := awscdk.Aws_appconfig.NewCfnExtension(this, jsii.String("MyCfnExtension"), &CfnExtensionProps{
	Actions: actions,
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	LatestVersionNumber: jsii.Number(123),
	Parameters: map[string]interface{}{
		"parametersKey": &ParameterProperty{
			"required": jsii.Boolean(false),

			// the properties below are optional
			"description": jsii.String("description"),
			"dynamic": jsii.Boolean(false),
		},
	},
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html

func NewCfnExtension added in v2.78.0

func NewCfnExtension(scope constructs.Construct, id *string, props *CfnExtensionProps) CfnExtension

type CfnExtensionAssociation added in v2.78.0

type CfnExtensionAssociation interface {
	awscdk.CfnResource
	awscdk.IInspectable
	awscdk.ITaggable
	// The ARN of the extension defined in the association.
	AttrArn() *string
	// The ARN of the extension defined in the association.
	AttrExtensionArn() *string
	// The system-generated ID for the association.
	AttrId() *string
	// The ARNs of applications, configuration profiles, or environments defined in the association.
	AttrResourceArn() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The name, the ID, or the Amazon Resource Name (ARN) of the extension.
	ExtensionIdentifier() *string
	SetExtensionIdentifier(val *string)
	// The version number of the extension.
	ExtensionVersionNumber() *float64
	SetExtensionVersionNumber(val *float64)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// The parameter names and values defined in the extensions.
	Parameters() interface{}
	SetParameters(val interface{})
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The ARN of an application, configuration profile, or environment.
	ResourceIdentifier() *string
	SetResourceIdentifier(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Tag Manager which manages the tags for this resource.
	Tags() awscdk.TagManager
	// Adds one or more tags for the specified extension association.
	TagsRaw() *[]*awscdk.CfnTag
	SetTagsRaw(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

When you create an extension or configure an AWS authored extension, you associate the extension with an AWS AppConfig application, environment, or configuration profile.

For example, you can choose to run the `AWS AppConfig deployment events to Amazon SNS` AWS authored extension and receive notifications on an Amazon SNS topic anytime a configuration deployment is started for a specific application. Defining which extension to associate with an AWS AppConfig resource is called an *extension association* . An extension association is a specified relationship between an extension and an AWS AppConfig resource, such as an application or a configuration profile. For more information about extensions and associations, see [Extending workflows](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnExtensionAssociation := awscdk.Aws_appconfig.NewCfnExtensionAssociation(this, jsii.String("MyCfnExtensionAssociation"), &CfnExtensionAssociationProps{
	ExtensionIdentifier: jsii.String("extensionIdentifier"),
	ExtensionVersionNumber: jsii.Number(123),
	Parameters: map[string]*string{
		"parametersKey": jsii.String("parameters"),
	},
	ResourceIdentifier: jsii.String("resourceIdentifier"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html

func NewCfnExtensionAssociation added in v2.78.0

func NewCfnExtensionAssociation(scope constructs.Construct, id *string, props *CfnExtensionAssociationProps) CfnExtensionAssociation

type CfnExtensionAssociationProps added in v2.78.0

type CfnExtensionAssociationProps struct {
	// The name, the ID, or the Amazon Resource Name (ARN) of the extension.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html#cfn-appconfig-extensionassociation-extensionidentifier
	//
	ExtensionIdentifier *string `field:"optional" json:"extensionIdentifier" yaml:"extensionIdentifier"`
	// The version number of the extension.
	//
	// If not specified, AWS AppConfig uses the maximum version of the extension.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html#cfn-appconfig-extensionassociation-extensionversionnumber
	//
	ExtensionVersionNumber *float64 `field:"optional" json:"extensionVersionNumber" yaml:"extensionVersionNumber"`
	// The parameter names and values defined in the extensions.
	//
	// Extension parameters marked `Required` must be entered for this field.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html#cfn-appconfig-extensionassociation-parameters
	//
	Parameters interface{} `field:"optional" json:"parameters" yaml:"parameters"`
	// The ARN of an application, configuration profile, or environment.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html#cfn-appconfig-extensionassociation-resourceidentifier
	//
	ResourceIdentifier *string `field:"optional" json:"resourceIdentifier" yaml:"resourceIdentifier"`
	// Adds one or more tags for the specified extension association.
	//
	// Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html#cfn-appconfig-extensionassociation-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnExtensionAssociation`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnExtensionAssociationProps := &CfnExtensionAssociationProps{
	ExtensionIdentifier: jsii.String("extensionIdentifier"),
	ExtensionVersionNumber: jsii.Number(123),
	Parameters: map[string]*string{
		"parametersKey": jsii.String("parameters"),
	},
	ResourceIdentifier: jsii.String("resourceIdentifier"),
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extensionassociation.html

type CfnExtensionProps added in v2.78.0

type CfnExtensionProps struct {
	// The actions defined in the extension.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html#cfn-appconfig-extension-actions
	//
	Actions interface{} `field:"required" json:"actions" yaml:"actions"`
	// A name for the extension.
	//
	// Each extension name in your account must be unique. Extension versions use the same name.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html#cfn-appconfig-extension-name
	//
	Name *string `field:"required" json:"name" yaml:"name"`
	// Information about the extension.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html#cfn-appconfig-extension-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// You can omit this field when you create an extension.
	//
	// When you create a new version, specify the most recent current version number. For example, you create version 3, enter 2 for this field.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html#cfn-appconfig-extension-latestversionnumber
	//
	LatestVersionNumber *float64 `field:"optional" json:"latestVersionNumber" yaml:"latestVersionNumber"`
	// The parameters accepted by the extension.
	//
	// You specify parameter values when you associate the extension to an AWS AppConfig resource by using the `CreateExtensionAssociation` API action. For AWS Lambda extension actions, these parameters are included in the Lambda request object.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html#cfn-appconfig-extension-parameters
	//
	Parameters interface{} `field:"optional" json:"parameters" yaml:"parameters"`
	// Adds one or more tags for the specified extension.
	//
	// Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html#cfn-appconfig-extension-tags
	//
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnExtension`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var actions interface{}

cfnExtensionProps := &CfnExtensionProps{
	Actions: actions,
	Name: jsii.String("name"),

	// the properties below are optional
	Description: jsii.String("description"),
	LatestVersionNumber: jsii.Number(123),
	Parameters: map[string]interface{}{
		"parametersKey": &ParameterProperty{
			"required": jsii.Boolean(false),

			// the properties below are optional
			"description": jsii.String("description"),
			"dynamic": jsii.Boolean(false),
		},
	},
	Tags: []cfnTag{
		&cfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-extension.html

type CfnExtension_ActionProperty added in v2.88.0

type CfnExtension_ActionProperty struct {
	// The action name.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html#cfn-appconfig-extension-action-name
	//
	Name *string `field:"required" json:"name" yaml:"name"`
	// The extension URI associated to the action point in the extension definition.
	//
	// The URI can be an Amazon Resource Name (ARN) for one of the following: an AWS Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html#cfn-appconfig-extension-action-uri
	//
	Uri *string `field:"required" json:"uri" yaml:"uri"`
	// Information about actions defined in the extension.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html#cfn-appconfig-extension-action-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// An Amazon Resource Name (ARN) for an AWS Identity and Access Management assume role.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html#cfn-appconfig-extension-action-rolearn
	//
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
}

The actions defined in the extension.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

actionProperty := &ActionProperty{
	Name: jsii.String("name"),
	Uri: jsii.String("uri"),

	// the properties below are optional
	Description: jsii.String("description"),
	RoleArn: jsii.String("roleArn"),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html

type CfnExtension_ParameterProperty added in v2.78.0

type CfnExtension_ParameterProperty struct {
	// A parameter value must be specified in the extension association.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-parameter.html#cfn-appconfig-extension-parameter-required
	//
	Required interface{} `field:"required" json:"required" yaml:"required"`
	// Information about the parameter.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-parameter.html#cfn-appconfig-extension-parameter-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association.
	//
	// Dynamic parameters can't be marked `Required` .
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-parameter.html#cfn-appconfig-extension-parameter-dynamic
	//
	Dynamic interface{} `field:"optional" json:"dynamic" yaml:"dynamic"`
}

A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked.

Parameter values are specified in an extension association. For more information about extensions, see [Extending workflows](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) in the *AWS AppConfig User Guide* .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

parameterProperty := &ParameterProperty{
	Required: jsii.Boolean(false),

	// the properties below are optional
	Description: jsii.String("description"),
	Dynamic: jsii.Boolean(false),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-parameter.html

type CfnHostedConfigurationVersion

type CfnHostedConfigurationVersion interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The application ID.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The configuration version.
	AttrVersionNumber() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The configuration profile ID.
	ConfigurationProfileId() *string
	SetConfigurationProfileId(val *string)
	// The content of the configuration or the configuration data.
	Content() *string
	SetContent(val *string)
	// A standard MIME type describing the format of the configuration content.
	ContentType() *string
	SetContentType(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// A description of the configuration.
	Description() *string
	SetDescription(val *string)
	// An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version.
	LatestVersionNumber() *float64
	SetLatestVersionNumber(val *float64)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// A user-defined label for an AWS AppConfig hosted configuration version.
	VersionLabel() *string
	SetVersionLabel(val *string)
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

Create a new configuration in the AWS AppConfig hosted configuration store.

Configurations must be 1 MB or smaller. The AWS AppConfig hosted configuration store provides the following benefits over other configuration store options.

- You don't need to set up and configure other services such as Amazon Simple Storage Service ( Amazon S3 ) or Parameter Store. - You don't need to configure AWS Identity and Access Management ( IAM ) permissions to use the configuration store. - You can store configurations in any content type. - There is no cost to use the store. - You can create a configuration and add it to the store when you create a configuration profile.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnHostedConfigurationVersion := awscdk.Aws_appconfig.NewCfnHostedConfigurationVersion(this, jsii.String("MyCfnHostedConfigurationVersion"), &CfnHostedConfigurationVersionProps{
	ApplicationId: jsii.String("applicationId"),
	ConfigurationProfileId: jsii.String("configurationProfileId"),
	Content: jsii.String("content"),
	ContentType: jsii.String("contentType"),

	// the properties below are optional
	Description: jsii.String("description"),
	LatestVersionNumber: jsii.Number(123),
	VersionLabel: jsii.String("versionLabel"),
})

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html

func NewCfnHostedConfigurationVersion

func NewCfnHostedConfigurationVersion(scope constructs.Construct, id *string, props *CfnHostedConfigurationVersionProps) CfnHostedConfigurationVersion

type CfnHostedConfigurationVersionProps

type CfnHostedConfigurationVersionProps struct {
	// The application ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-applicationid
	//
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The configuration profile ID.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-configurationprofileid
	//
	ConfigurationProfileId *string `field:"required" json:"configurationProfileId" yaml:"configurationProfileId"`
	// The content of the configuration or the configuration data.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-content
	//
	Content *string `field:"required" json:"content" yaml:"content"`
	// A standard MIME type describing the format of the configuration content.
	//
	// For more information, see [Content-Type](https://docs.aws.amazon.com/https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17) .
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-contenttype
	//
	ContentType *string `field:"required" json:"contentType" yaml:"contentType"`
	// A description of the configuration.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-description
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version.
	//
	// To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-latestversionnumber
	//
	LatestVersionNumber *float64 `field:"optional" json:"latestVersionNumber" yaml:"latestVersionNumber"`
	// A user-defined label for an AWS AppConfig hosted configuration version.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-versionlabel
	//
	VersionLabel *string `field:"optional" json:"versionLabel" yaml:"versionLabel"`
}

Properties for defining a `CfnHostedConfigurationVersion`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnHostedConfigurationVersionProps := &CfnHostedConfigurationVersionProps{
	ApplicationId: jsii.String("applicationId"),
	ConfigurationProfileId: jsii.String("configurationProfileId"),
	Content: jsii.String("content"),
	ContentType: jsii.String("contentType"),

	// the properties below are optional
	Description: jsii.String("description"),
	LatestVersionNumber: jsii.Number(123),
	VersionLabel: jsii.String("versionLabel"),
}

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html

type ConfigurationContent added in v2.130.0

type ConfigurationContent interface {
	// The configuration content.
	Content() *string
	// The configuration content type.
	ContentType() *string
}

Defines the hosted configuration content.

Example:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
})

func ConfigurationContent_FromFile added in v2.130.0

func ConfigurationContent_FromFile(inputPath *string, contentType *string) ConfigurationContent

Defines the hosted configuration content from a file.

func ConfigurationContent_FromInline added in v2.130.0

func ConfigurationContent_FromInline(content *string, contentType *string) ConfigurationContent

Defines the hosted configuration content from inline code.

func ConfigurationContent_FromInlineJson added in v2.130.0

func ConfigurationContent_FromInlineJson(content *string, contentType *string) ConfigurationContent

Defines the hosted configuration content as JSON from inline code.

func ConfigurationContent_FromInlineText added in v2.130.0

func ConfigurationContent_FromInlineText(content *string) ConfigurationContent

Defines the hosted configuration content as text from inline code.

func ConfigurationContent_FromInlineYaml added in v2.130.0

func ConfigurationContent_FromInlineYaml(content *string) ConfigurationContent

Defines the hosted configuration content as YAML from inline code.

type ConfigurationOptions added in v2.130.0

type ConfigurationOptions struct {
	// The deployment key of the configuration.
	// Default: - None.
	//
	DeploymentKey awskms.IKey `field:"optional" json:"deploymentKey" yaml:"deploymentKey"`
	// The deployment strategy for the configuration.
	// Default: - A deployment strategy with the rollout strategy set to
	// RolloutStrategy.CANARY_10_PERCENT_20_MINUTES
	//
	DeploymentStrategy IDeploymentStrategy `field:"optional" json:"deploymentStrategy" yaml:"deploymentStrategy"`
	// The list of environments to deploy the configuration to.
	//
	// If this parameter is not specified, then there will be no
	// deployment created alongside this configuration.
	//
	// Deployments can be added later using the `IEnvironment.addDeployment` or
	// `IEnvironment.addDeployments` methods.
	// Default: - None.
	//
	DeployTo *[]IEnvironment `field:"optional" json:"deployTo" yaml:"deployTo"`
	// The description of the configuration.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the configuration.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of configuration.
	// Default: ConfigurationType.FREEFORM
	//
	Type ConfigurationType `field:"optional" json:"type" yaml:"type"`
	// The validators for the configuration.
	// Default: - No validators.
	//
	Validators *[]IValidator `field:"optional" json:"validators" yaml:"validators"`
}

Options for the Configuration construct.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var deploymentStrategy deploymentStrategy
var environment environment
var key key
var validator iValidator

configurationOptions := &ConfigurationOptions{
	DeploymentKey: key,
	DeploymentStrategy: deploymentStrategy,
	DeployTo: []iEnvironment{
		environment,
	},
	Description: jsii.String("description"),
	Name: jsii.String("name"),
	Type: awscdk.Aws_appconfig.ConfigurationType_FREEFORM,
	Validators: []*iValidator{
		validator,
	},
}

type ConfigurationProps added in v2.130.0

type ConfigurationProps struct {
	// The deployment key of the configuration.
	// Default: - None.
	//
	DeploymentKey awskms.IKey `field:"optional" json:"deploymentKey" yaml:"deploymentKey"`
	// The deployment strategy for the configuration.
	// Default: - A deployment strategy with the rollout strategy set to
	// RolloutStrategy.CANARY_10_PERCENT_20_MINUTES
	//
	DeploymentStrategy IDeploymentStrategy `field:"optional" json:"deploymentStrategy" yaml:"deploymentStrategy"`
	// The list of environments to deploy the configuration to.
	//
	// If this parameter is not specified, then there will be no
	// deployment created alongside this configuration.
	//
	// Deployments can be added later using the `IEnvironment.addDeployment` or
	// `IEnvironment.addDeployments` methods.
	// Default: - None.
	//
	DeployTo *[]IEnvironment `field:"optional" json:"deployTo" yaml:"deployTo"`
	// The description of the configuration.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the configuration.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of configuration.
	// Default: ConfigurationType.FREEFORM
	//
	Type ConfigurationType `field:"optional" json:"type" yaml:"type"`
	// The validators for the configuration.
	// Default: - No validators.
	//
	Validators *[]IValidator `field:"optional" json:"validators" yaml:"validators"`
	// The application associated with the configuration.
	Application IApplication `field:"required" json:"application" yaml:"application"`
}

Properties for the Configuration construct.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var application application
var deploymentStrategy deploymentStrategy
var environment environment
var key key
var validator iValidator

configurationProps := &ConfigurationProps{
	Application: application,

	// the properties below are optional
	DeploymentKey: key,
	DeploymentStrategy: deploymentStrategy,
	DeployTo: []iEnvironment{
		environment,
	},
	Description: jsii.String("description"),
	Name: jsii.String("name"),
	Type: awscdk.Aws_appconfig.ConfigurationType_FREEFORM,
	Validators: []*iValidator{
		validator,
	},
}

type ConfigurationSource added in v2.130.0

type ConfigurationSource interface {
	// The KMS Key that encrypts the configuration.
	Key() awskms.IKey
	// The URI of the configuration source.
	LocationUri() *string
	// The type of the configuration source.
	Type() ConfigurationSourceType
}

Defines the integrated configuration sources.

Example:

var application application
var bucket bucket

appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
	Type: appconfig.ConfigurationType_FEATURE_FLAGS,
	Name: jsii.String("MyConfig"),
	Description: jsii.String("This is my sourced configuration from CDK."),
})

func ConfigurationSource_FromBucket added in v2.130.0

func ConfigurationSource_FromBucket(bucket awss3.IBucket, objectKey *string, key awskms.IKey) ConfigurationSource

Defines configuration content from an Amazon S3 bucket.

func ConfigurationSource_FromCfnDocument added in v2.130.0

func ConfigurationSource_FromCfnDocument(document awsssm.CfnDocument) ConfigurationSource

Defines configuration content from a Systems Manager (SSM) document.

func ConfigurationSource_FromParameter added in v2.130.0

func ConfigurationSource_FromParameter(parameter awsssm.IParameter, key awskms.IKey) ConfigurationSource

Defines configuration content from a Systems Manager (SSM) Parameter Store parameter.

func ConfigurationSource_FromPipeline added in v2.130.0

func ConfigurationSource_FromPipeline(pipeline awscodepipeline.IPipeline) ConfigurationSource

Defines configuration content from AWS CodePipeline.

func ConfigurationSource_FromSecret added in v2.130.0

func ConfigurationSource_FromSecret(secret awssecretsmanager.ISecret) ConfigurationSource

Defines configuration content from an AWS Secrets Manager secret.

type ConfigurationSourceType added in v2.130.0

type ConfigurationSourceType string

The configuration source type.

const (
	ConfigurationSourceType_S3              ConfigurationSourceType = "S3"
	ConfigurationSourceType_SECRETS_MANAGER ConfigurationSourceType = "SECRETS_MANAGER"
	ConfigurationSourceType_SSM_PARAMETER   ConfigurationSourceType = "SSM_PARAMETER"
	ConfigurationSourceType_SSM_DOCUMENT    ConfigurationSourceType = "SSM_DOCUMENT"
	ConfigurationSourceType_CODE_PIPELINE   ConfigurationSourceType = "CODE_PIPELINE"
)

type ConfigurationType added in v2.130.0

type ConfigurationType string

The configuration type.

Example:

var application application

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	Type: appconfig.ConfigurationType_FEATURE_FLAGS,
})
const (
	// Freeform configuration profile.
	//
	// Allows you to store your data in the AWS AppConfig
	// hosted configuration store or another Systems Manager capability or AWS service that integrates
	// with AWS AppConfig.
	// See: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-free-form-configurations-creating.html
	//
	ConfigurationType_FREEFORM ConfigurationType = "FREEFORM"
	// Feature flag configuration profile.
	//
	// This configuration stores its data
	// in the AWS AppConfig hosted configuration store and the URI is simply hosted.
	ConfigurationType_FEATURE_FLAGS ConfigurationType = "FEATURE_FLAGS"
)

type DeploymentStrategy added in v2.130.0

type DeploymentStrategy interface {
	awscdk.Resource
	IDeploymentStrategy
	// The deployment duration in minutes of the deployment strategy.
	DeploymentDurationInMinutes() *float64
	// The Amazon Resource Name (ARN) of the deployment strategy.
	DeploymentStrategyArn() *string
	// The ID of the deployment strategy.
	DeploymentStrategyId() *string
	// The description of the deployment strategy.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The final bake time in minutes of the deployment strategy.
	FinalBakeTimeInMinutes() *float64
	// The growth factor of the deployment strategy.
	GrowthFactor() *float64
	// The growth type of the deployment strategy.
	GrowthType() GrowthType
	// The name of the deployment strategy.
	Name() *string
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

An AWS AppConfig deployment strategy.

Example:

appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
	RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
		GrowthFactor: jsii.Number(20),
		DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
		FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(30)),
	}),
})

See: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html

func NewDeploymentStrategy added in v2.130.0

func NewDeploymentStrategy(scope constructs.Construct, id *string, props *DeploymentStrategyProps) DeploymentStrategy

type DeploymentStrategyId added in v2.130.0

type DeploymentStrategyId interface {
	// The deployment strategy ID.
	Id() *string
}

Defines the deployment strategy ID's of AWS AppConfig deployment strategies.

Example:

appconfig.DeploymentStrategy_FromDeploymentStrategyId(this, jsii.String("MyImportedDeploymentStrategy"), appconfig.DeploymentStrategyId_FromString(jsii.String("abc123")))

See: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html

func DeploymentStrategyId_ALL_AT_ONCE added in v2.130.0

func DeploymentStrategyId_ALL_AT_ONCE() DeploymentStrategyId

func DeploymentStrategyId_CANARY_10_PERCENT_20_MINUTES added in v2.130.0

func DeploymentStrategyId_CANARY_10_PERCENT_20_MINUTES() DeploymentStrategyId

func DeploymentStrategyId_FromString added in v2.130.0

func DeploymentStrategyId_FromString(deploymentStrategyId *string) DeploymentStrategyId

Builds a deployment strategy ID from a string.

func DeploymentStrategyId_LINEAR_20_PERCENT_EVERY_6_MINUTES added in v2.130.0

func DeploymentStrategyId_LINEAR_20_PERCENT_EVERY_6_MINUTES() DeploymentStrategyId

func DeploymentStrategyId_LINEAR_50_PERCENT_EVERY_30_SECONDS added in v2.130.0

func DeploymentStrategyId_LINEAR_50_PERCENT_EVERY_30_SECONDS() DeploymentStrategyId

type DeploymentStrategyProps added in v2.130.0

type DeploymentStrategyProps struct {
	// The rollout strategy for the deployment strategy.
	//
	// You can use predefined deployment
	// strategies, such as RolloutStrategy.ALL_AT_ONCE, RolloutStrategy.LINEAR_50_PERCENT_EVERY_30_SECONDS,
	// or RolloutStrategy.CANARY_10_PERCENT_20_MINUTES.
	RolloutStrategy RolloutStrategy `field:"required" json:"rolloutStrategy" yaml:"rolloutStrategy"`
	// A name for the deployment strategy.
	// Default: - A name is generated.
	//
	DeploymentStrategyName *string `field:"optional" json:"deploymentStrategyName" yaml:"deploymentStrategyName"`
	// A description of the deployment strategy.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
}

Properties for DeploymentStrategy.

Example:

appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
	RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
		GrowthFactor: jsii.Number(20),
		DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
		FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(30)),
	}),
})

type Environment added in v2.130.0

type Environment interface {
	awscdk.Resource
	IEnvironment
	IExtensible
	// The application associated with the environment.
	Application() IApplication
	// The ID of the environment.
	ApplicationId() *string
	DeploymentQueue() *[]CfnDeployment
	SetDeploymentQueue(val *[]CfnDeployment)
	// The description of the environment.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The Amazon Resource Name (ARN) of the environment.
	EnvironmentArn() *string
	// The ID of the environment.
	EnvironmentId() *string
	Extensible() ExtensibleBase
	SetExtensible(val ExtensibleBase)
	// The monitors for the environment.
	Monitors() *[]Monitor
	// The name of the environment.
	Name() *string
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Creates a deployment of the supplied configuration to this environment.
	//
	// Note that you can only deploy one configuration at a time to an environment.
	// However, you can deploy one configuration each to different environments at the same time.
	// If more than one deployment is requested for this environment, they will occur in the same order they were provided.
	AddDeployment(configuration IConfiguration)
	// Creates a deployment for each of the supplied configurations to this environment.
	//
	// These configurations will be deployed in the same order as the input array.
	AddDeployments(configurations ...IConfiguration)
	// Adds an extension association to the environment.
	AddExtension(extension IExtension)
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds an extension defined by the action point and event destination and also creates an extension association to the environment.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to the environment.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to the environment.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
	// Returns a string representation of this construct.
	ToString() *string
}

An AWS AppConfig environment.

Example:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyFirstHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my first configuration content.")),
})

appconfig.NewHostedConfiguration(this, jsii.String("MySecondHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []*iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_*FromInlineText(jsii.String("This is my second configuration content.")),
})

See: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-environment.html

func NewEnvironment added in v2.130.0

func NewEnvironment(scope constructs.Construct, id *string, props *EnvironmentProps) Environment

type EnvironmentAttributes added in v2.130.0

type EnvironmentAttributes struct {
	// The application associated with the environment.
	Application IApplication `field:"required" json:"application" yaml:"application"`
	// The ID of the environment.
	EnvironmentId *string `field:"required" json:"environmentId" yaml:"environmentId"`
	// The description of the environment.
	// Default: - None.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The monitors for the environment.
	// Default: - None.
	//
	Monitors *[]Monitor `field:"optional" json:"monitors" yaml:"monitors"`
	// The name of the environment.
	// Default: - None.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
}

Attributes of an existing AWS AppConfig environment to import it.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var application application
var monitor monitor

environmentAttributes := &EnvironmentAttributes{
	Application: application,
	EnvironmentId: jsii.String("environmentId"),

	// the properties below are optional
	Description: jsii.String("description"),
	Monitors: []*monitor{
		monitor,
	},
	Name: jsii.String("name"),
}

type EnvironmentOptions added in v2.130.0

type EnvironmentOptions struct {
	// The description of the environment.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the environment.
	// Default: - A name is generated.
	//
	EnvironmentName *string `field:"optional" json:"environmentName" yaml:"environmentName"`
	// The monitors for the environment.
	// Default: - No monitors.
	//
	Monitors *[]Monitor `field:"optional" json:"monitors" yaml:"monitors"`
}

Options for the Environment construct.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var monitor monitor

environmentOptions := &EnvironmentOptions{
	Description: jsii.String("description"),
	EnvironmentName: jsii.String("environmentName"),
	Monitors: []*monitor{
		monitor,
	},
}

type EnvironmentProps added in v2.130.0

type EnvironmentProps struct {
	// The description of the environment.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the environment.
	// Default: - A name is generated.
	//
	EnvironmentName *string `field:"optional" json:"environmentName" yaml:"environmentName"`
	// The monitors for the environment.
	// Default: - No monitors.
	//
	Monitors *[]Monitor `field:"optional" json:"monitors" yaml:"monitors"`
	// The application to be associated with the environment.
	Application IApplication `field:"required" json:"application" yaml:"application"`
}

Properties for the Environment construct.

Example:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyFirstHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my first configuration content.")),
})

appconfig.NewHostedConfiguration(this, jsii.String("MySecondHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []*iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_*FromInlineText(jsii.String("This is my second configuration content.")),
})

type EventBridgeDestination added in v2.130.0

type EventBridgeDestination interface {
	IEventDestination
	// The URI of the extension event destination.
	ExtensionUri() *string
	// The type of the extension event destination.
	Type() SourceType
}

Use an Amazon EventBridge event bus as an event destination.

Example:

bus := events.EventBus_FromEventBusName(this, jsii.String("MyEventBus"), jsii.String("default"))

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewEventBridgeDestination(bus),
		}),
	},
})

func NewEventBridgeDestination added in v2.130.0

func NewEventBridgeDestination(bus awsevents.IEventBus) EventBridgeDestination

type ExtensibleBase added in v2.130.0

type ExtensibleBase interface {
	IExtensible
	// Adds an extension association to the derived resource.
	AddExtension(extension IExtension)
	// Adds an extension defined by the action point and event destination and also creates an extension association to the derived resource.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to the derived resource.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to the derived resource.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
}

This class is meant to be used by AWS AppConfig resources (application, configuration profile, environment) directly.

There is currently no use for this class outside of the AWS AppConfig construct implementation. It is intended to be used with the resources since there is currently no way to inherit from two classes (at least within JSII constraints).

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

extensibleBase := awscdk.Aws_appconfig.NewExtensibleBase(this, jsii.String("resourceArn"), jsii.String("resourceName"))

func NewExtensibleBase added in v2.130.0

func NewExtensibleBase(scope constructs.Construct, resourceArn *string, resourceName *string) ExtensibleBase

type Extension added in v2.130.0

type Extension interface {
	awscdk.Resource
	IExtension
	// The actions for the extension.
	Actions() *[]Action
	// The description of the extension.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The Amazon Resource Name (ARN) of the extension.
	ExtensionArn() *string
	// The ID of the extension.
	ExtensionId() *string
	// The version number of the extension.
	ExtensionVersionNumber() *float64
	// The latest version number of the extension.
	LatestVersionNumber() *float64
	// The name of the extension.
	Name() *string
	// The tree node.
	Node() constructs.Node
	// The parameters of the extension.
	Parameters() *[]Parameter
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

An AWS AppConfig extension.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

See: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html

func NewExtension added in v2.130.0

func NewExtension(scope constructs.Construct, id *string, props *ExtensionProps) Extension

type ExtensionAttributes added in v2.130.0

type ExtensionAttributes struct {
	// The ID of the extension.
	ExtensionId *string `field:"required" json:"extensionId" yaml:"extensionId"`
	// The version number of the extension.
	ExtensionVersionNumber *float64 `field:"required" json:"extensionVersionNumber" yaml:"extensionVersionNumber"`
	// The actions of the extension.
	// Default: - None.
	//
	Actions *[]Action `field:"optional" json:"actions" yaml:"actions"`
	// The description of the extension.
	// Default: - None.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The Amazon Resource Name (ARN) of the extension.
	// Default: - The extension ARN is generated.
	//
	ExtensionArn *string `field:"optional" json:"extensionArn" yaml:"extensionArn"`
	// The name of the extension.
	// Default: - None.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
}

Attributes of an existing AWS AppConfig extension to import.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var action action

extensionAttributes := &ExtensionAttributes{
	ExtensionId: jsii.String("extensionId"),
	ExtensionVersionNumber: jsii.Number(123),

	// the properties below are optional
	Actions: []*action{
		action,
	},
	Description: jsii.String("description"),
	ExtensionArn: jsii.String("extensionArn"),
	Name: jsii.String("name"),
}

type ExtensionOptions added in v2.130.0

type ExtensionOptions struct {
	// A description of the extension.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the extension.
	// Default: - A name is generated.
	//
	ExtensionName *string `field:"optional" json:"extensionName" yaml:"extensionName"`
	// The latest version number of the extension.
	//
	// When you create a new version,
	// specify the most recent current version number. For example, you create version 3,
	// enter 2 for this field.
	// Default: - None.
	//
	LatestVersionNumber *float64 `field:"optional" json:"latestVersionNumber" yaml:"latestVersionNumber"`
	// The parameters accepted for the extension.
	// Default: - None.
	//
	Parameters *[]Parameter `field:"optional" json:"parameters" yaml:"parameters"`
}

Options for the Extension construct.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var parameter parameter

extensionOptions := &ExtensionOptions{
	Description: jsii.String("description"),
	ExtensionName: jsii.String("extensionName"),
	LatestVersionNumber: jsii.Number(123),
	Parameters: []*parameter{
		parameter,
	},
}

type ExtensionProps added in v2.130.0

type ExtensionProps struct {
	// A description of the extension.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the extension.
	// Default: - A name is generated.
	//
	ExtensionName *string `field:"optional" json:"extensionName" yaml:"extensionName"`
	// The latest version number of the extension.
	//
	// When you create a new version,
	// specify the most recent current version number. For example, you create version 3,
	// enter 2 for this field.
	// Default: - None.
	//
	LatestVersionNumber *float64 `field:"optional" json:"latestVersionNumber" yaml:"latestVersionNumber"`
	// The parameters accepted for the extension.
	// Default: - None.
	//
	Parameters *[]Parameter `field:"optional" json:"parameters" yaml:"parameters"`
	// The actions for the extension.
	Actions *[]Action `field:"required" json:"actions" yaml:"actions"`
}

Properties for the Extension construct.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

type GrowthType added in v2.130.0

type GrowthType string

Defines the growth type of the deployment strategy.

const (
	// AWS AppConfig will process the deployment by increments of the growth factor evenly distributed over the deployment.
	GrowthType_LINEAR GrowthType = "LINEAR"
	// AWS AppConfig will process the deployment exponentially using the following formula: `G*(2^N)`.
	//
	// In this formula, `G` is the step percentage specified by the user and `N`
	// is the number of steps until the configuration is deployed to all targets.
	GrowthType_EXPONENTIAL GrowthType = "EXPONENTIAL"
)

type HostedConfiguration added in v2.130.0

type HostedConfiguration interface {
	constructs.Construct
	IConfiguration
	IExtensible
	// The application associated with the configuration.
	Application() IApplication
	ApplicationId() *string
	SetApplicationId(val *string)
	// The Amazon Resource Name (ARN) of the configuration profile.
	ConfigurationProfileArn() *string
	// The ID of the configuration profile.
	ConfigurationProfileId() *string
	// The content of the hosted configuration.
	Content() *string
	// The content type of the hosted configuration.
	ContentType() *string
	// The deployment key for the configuration.
	DeploymentKey() awskms.IKey
	// The deployment strategy for the configuration.
	DeploymentStrategy() IDeploymentStrategy
	// The environments to deploy to.
	DeployTo() *[]IEnvironment
	// The description of the configuration.
	Description() *string
	Extensible() ExtensibleBase
	SetExtensible(val ExtensibleBase)
	// The Amazon Resource Name (ARN) of the hosted configuration version.
	HostedConfigurationVersionArn() *string
	// The latest version number of the hosted configuration.
	LatestVersionNumber() *float64
	// The name of the configuration.
	Name() *string
	// The tree node.
	Node() constructs.Node
	// The configuration type.
	Type() ConfigurationType
	// The validators for the configuration.
	Validators() *[]IValidator
	// The version label of the hosted configuration.
	VersionLabel() *string
	// The version number of the hosted configuration.
	VersionNumber() *string
	AddExistingEnvironmentsToApplication()
	// Adds an extension association to the configuration profile.
	AddExtension(extension IExtension)
	DeployConfigToEnvironments()
	// Adds an extension defined by the action point and event destination and also creates an extension association to the configuration profile.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to the configuration profile.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to the configuration profile.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
	// Returns a string representation of this construct.
	ToString() *string
}

A hosted configuration represents configuration stored in the AWS AppConfig hosted configuration store.

Example:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
})

func NewHostedConfiguration added in v2.130.0

func NewHostedConfiguration(scope constructs.Construct, id *string, props *HostedConfigurationProps) HostedConfiguration

type HostedConfigurationOptions added in v2.130.0

type HostedConfigurationOptions struct {
	// The deployment key of the configuration.
	// Default: - None.
	//
	DeploymentKey awskms.IKey `field:"optional" json:"deploymentKey" yaml:"deploymentKey"`
	// The deployment strategy for the configuration.
	// Default: - A deployment strategy with the rollout strategy set to
	// RolloutStrategy.CANARY_10_PERCENT_20_MINUTES
	//
	DeploymentStrategy IDeploymentStrategy `field:"optional" json:"deploymentStrategy" yaml:"deploymentStrategy"`
	// The list of environments to deploy the configuration to.
	//
	// If this parameter is not specified, then there will be no
	// deployment created alongside this configuration.
	//
	// Deployments can be added later using the `IEnvironment.addDeployment` or
	// `IEnvironment.addDeployments` methods.
	// Default: - None.
	//
	DeployTo *[]IEnvironment `field:"optional" json:"deployTo" yaml:"deployTo"`
	// The description of the configuration.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the configuration.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of configuration.
	// Default: ConfigurationType.FREEFORM
	//
	Type ConfigurationType `field:"optional" json:"type" yaml:"type"`
	// The validators for the configuration.
	// Default: - No validators.
	//
	Validators *[]IValidator `field:"optional" json:"validators" yaml:"validators"`
	// The content of the hosted configuration.
	Content ConfigurationContent `field:"required" json:"content" yaml:"content"`
	// The latest version number of the hosted configuration.
	// Default: - None.
	//
	LatestVersionNumber *float64 `field:"optional" json:"latestVersionNumber" yaml:"latestVersionNumber"`
	// The version label of the hosted configuration.
	// Default: - None.
	//
	VersionLabel *string `field:"optional" json:"versionLabel" yaml:"versionLabel"`
}

Options for HostedConfiguration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var configurationContent configurationContent
var deploymentStrategy deploymentStrategy
var environment environment
var key key
var validator iValidator

hostedConfigurationOptions := &HostedConfigurationOptions{
	Content: configurationContent,

	// the properties below are optional
	DeploymentKey: key,
	DeploymentStrategy: deploymentStrategy,
	DeployTo: []iEnvironment{
		environment,
	},
	Description: jsii.String("description"),
	LatestVersionNumber: jsii.Number(123),
	Name: jsii.String("name"),
	Type: awscdk.Aws_appconfig.ConfigurationType_FREEFORM,
	Validators: []*iValidator{
		validator,
	},
	VersionLabel: jsii.String("versionLabel"),
}

type HostedConfigurationProps added in v2.130.0

type HostedConfigurationProps struct {
	// The deployment key of the configuration.
	// Default: - None.
	//
	DeploymentKey awskms.IKey `field:"optional" json:"deploymentKey" yaml:"deploymentKey"`
	// The deployment strategy for the configuration.
	// Default: - A deployment strategy with the rollout strategy set to
	// RolloutStrategy.CANARY_10_PERCENT_20_MINUTES
	//
	DeploymentStrategy IDeploymentStrategy `field:"optional" json:"deploymentStrategy" yaml:"deploymentStrategy"`
	// The list of environments to deploy the configuration to.
	//
	// If this parameter is not specified, then there will be no
	// deployment created alongside this configuration.
	//
	// Deployments can be added later using the `IEnvironment.addDeployment` or
	// `IEnvironment.addDeployments` methods.
	// Default: - None.
	//
	DeployTo *[]IEnvironment `field:"optional" json:"deployTo" yaml:"deployTo"`
	// The description of the configuration.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the configuration.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of configuration.
	// Default: ConfigurationType.FREEFORM
	//
	Type ConfigurationType `field:"optional" json:"type" yaml:"type"`
	// The validators for the configuration.
	// Default: - No validators.
	//
	Validators *[]IValidator `field:"optional" json:"validators" yaml:"validators"`
	// The application associated with the configuration.
	Application IApplication `field:"required" json:"application" yaml:"application"`
	// The content of the hosted configuration.
	Content ConfigurationContent `field:"required" json:"content" yaml:"content"`
	// The latest version number of the hosted configuration.
	// Default: - None.
	//
	LatestVersionNumber *float64 `field:"optional" json:"latestVersionNumber" yaml:"latestVersionNumber"`
	// The version label of the hosted configuration.
	// Default: - None.
	//
	VersionLabel *string `field:"optional" json:"versionLabel" yaml:"versionLabel"`
}

Properties for HostedConfiguration.

Example:

app := appconfig.NewApplication(this, jsii.String("MyApp"))
env := appconfig.NewEnvironment(this, jsii.String("MyEnv"), &EnvironmentProps{
	Application: app,
})

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfig"), &HostedConfigurationProps{
	Application: app,
	DeployTo: []iEnvironment{
		env,
	},
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
})

type IApplication added in v2.130.0

type IApplication interface {
	awscdk.IResource
	// Adds an environment.
	AddEnvironment(id *string, options *EnvironmentOptions) IEnvironment
	// Adds an existing environment.
	AddExistingEnvironment(environment IEnvironment)
	// Adds an extension association to the application.
	AddExtension(extension IExtension)
	// Adds a hosted configuration.
	AddHostedConfiguration(id *string, options *HostedConfigurationOptions) HostedConfiguration
	// Adds a sourced configuration.
	AddSourcedConfiguration(id *string, options *SourcedConfigurationOptions) SourcedConfiguration
	// Returns the list of associated environments.
	Environments() *[]IEnvironment
	// Adds an extension defined by the action point and event destination and also creates an extension association to an application.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to an application.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to an application.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to an application.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
	// The Amazon Resource Name (ARN) of the application.
	ApplicationArn() *string
	// The ID of the application.
	ApplicationId() *string
	// The description of the application.
	Description() *string
	// The name of the application.
	Name() *string
}

func Application_FromApplicationArn added in v2.130.0

func Application_FromApplicationArn(scope constructs.Construct, id *string, applicationArn *string) IApplication

Imports an AWS AppConfig application into the CDK using its Amazon Resource Name (ARN).

func Application_FromApplicationId added in v2.130.0

func Application_FromApplicationId(scope constructs.Construct, id *string, applicationId *string) IApplication

Imports an AWS AppConfig application into the CDK using its ID.

type IConfiguration added in v2.130.0

type IConfiguration interface {
	constructs.IConstruct
	// The application associated with the configuration.
	Application() IApplication
	// The ID of the configuration profile.
	ConfigurationProfileId() *string
	// The deployment key for the configuration.
	DeploymentKey() awskms.IKey
	// The deployment strategy for the configuration.
	DeploymentStrategy() IDeploymentStrategy
	// The environments to deploy to.
	DeployTo() *[]IEnvironment
	// The description of the configuration.
	Description() *string
	// The name of the configuration.
	Name() *string
	// The configuration type.
	Type() ConfigurationType
	// The validators for the configuration.
	Validators() *[]IValidator
	// The configuration version number.
	VersionNumber() *string
}

type IDeploymentStrategy added in v2.130.0

type IDeploymentStrategy interface {
	awscdk.IResource
	// The deployment duration in minutes.
	DeploymentDurationInMinutes() *float64
	// The Amazon Resource Name (ARN) of the deployment strategy.
	DeploymentStrategyArn() *string
	// The ID of the deployment strategy.
	DeploymentStrategyId() *string
	// The description of the deployment strategy.
	Description() *string
	// The final bake time in minutes.
	FinalBakeTimeInMinutes() *float64
	// The growth factor of the deployment strategy.
	GrowthFactor() *float64
	// The growth type of the deployment strategy.
	GrowthType() GrowthType
	// The name of the deployment strategy.
	Name() *string
}

func DeploymentStrategy_FromDeploymentStrategyArn added in v2.130.0

func DeploymentStrategy_FromDeploymentStrategyArn(scope constructs.Construct, id *string, deploymentStrategyArn *string) IDeploymentStrategy

Imports a deployment strategy into the CDK using its Amazon Resource Name (ARN).

func DeploymentStrategy_FromDeploymentStrategyId added in v2.130.0

func DeploymentStrategy_FromDeploymentStrategyId(scope constructs.Construct, id *string, deploymentStrategyId DeploymentStrategyId) IDeploymentStrategy

Imports a deployment strategy into the CDK using its ID.

type IEnvironment added in v2.130.0

type IEnvironment interface {
	awscdk.IResource
	// Creates a deployment of the supplied configuration to this environment.
	//
	// Note that you can only deploy one configuration at a time to an environment.
	// However, you can deploy one configuration each to different environments at the same time.
	// If more than one deployment is requested for this environment, they will occur in the same order they were provided.
	AddDeployment(configuration IConfiguration)
	// Creates a deployment for each of the supplied configurations to this environment.
	//
	// These configurations will be deployed in the same order as the input array.
	AddDeployments(configurations ...IConfiguration)
	// Adds an extension association to the environment.
	AddExtension(extension IExtension)
	// Adds an extension defined by the action point and event destination and also creates an extension association to the environment.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to the environment.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to the environment.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to the environment.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
	// The application associated with the environment.
	Application() IApplication
	// The ID of the application associated to the environment.
	ApplicationId() *string
	// The description of the environment.
	Description() *string
	// The Amazon Resource Name (ARN) of the environment.
	EnvironmentArn() *string
	// The ID of the environment.
	EnvironmentId() *string
	// The monitors for the environment.
	Monitors() *[]Monitor
	// The name of the environment.
	Name() *string
}

func Environment_FromEnvironmentArn added in v2.130.0

func Environment_FromEnvironmentArn(scope constructs.Construct, id *string, environmentArn *string) IEnvironment

Imports an environment into the CDK using its Amazon Resource Name (ARN).

func Environment_FromEnvironmentAttributes added in v2.130.0

func Environment_FromEnvironmentAttributes(scope constructs.Construct, id *string, attrs *EnvironmentAttributes) IEnvironment

Imports an environment into the CDK from its attributes.

type IEventDestination added in v2.130.0

type IEventDestination interface {
	// The URI of the extension event destination.
	ExtensionUri() *string
	// The IAM policy document to invoke the event destination.
	PolicyDocument() awsiam.PolicyDocument
	// The type of the extension event destination.
	Type() SourceType
}

Implemented by allowed extension event destinations.

type IExtensible added in v2.130.0

type IExtensible interface {
	// Adds an extension association to the derived resource.
	AddExtension(extension IExtension)
	// Adds an extension defined by the action point and event destination and also creates an extension association to the derived resource.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to the derived resource.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to the derived resource.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to the derived resource.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
}

Defines the extensible base implementation for extension association resources.

type IExtension added in v2.130.0

type IExtension interface {
	awscdk.IResource
	// The actions for the extension.
	Actions() *[]Action
	// The description of the extension.
	Description() *string
	// The Amazon Resource Name (ARN) of the extension.
	ExtensionArn() *string
	// The ID of the extension.
	ExtensionId() *string
	// The version number of the extension.
	ExtensionVersionNumber() *float64
	// The latest version number of the extension.
	LatestVersionNumber() *float64
	// The name of the extension.
	Name() *string
	// The parameters of the extension.
	Parameters() *[]Parameter
}

func Extension_FromExtensionArn added in v2.130.0

func Extension_FromExtensionArn(scope constructs.Construct, id *string, extensionArn *string) IExtension

Imports an extension into the CDK using its Amazon Resource Name (ARN).

func Extension_FromExtensionAttributes added in v2.130.0

func Extension_FromExtensionAttributes(scope constructs.Construct, id *string, attrs *ExtensionAttributes) IExtension

Imports an extension into the CDK using its attributes.

type IValidator added in v2.130.0

type IValidator interface {
	// The content of the validator.
	Content() *string
	// The type of validator.
	Type() ValidatorType
}

type JsonSchemaValidator added in v2.130.0

type JsonSchemaValidator interface {
	IValidator
	// The content of the validator.
	Content() *string
	// The type of validator.
	Type() ValidatorType
}

Defines a JSON Schema validator.

Example:

var application application
var fn function

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	Validators: []iValidator{
		appconfig.JsonSchemaValidator_FromFile(jsii.String("schema.json")),
		appconfig.LambdaValidator_FromFunction(fn),
	},
})

func JsonSchemaValidator_FromFile added in v2.130.0

func JsonSchemaValidator_FromFile(inputPath *string) JsonSchemaValidator

Defines a JSON Schema validator from a file.

func JsonSchemaValidator_FromInline added in v2.130.0

func JsonSchemaValidator_FromInline(code *string) JsonSchemaValidator

Defines a JSON Schema validator from inline code.

type LambdaDestination added in v2.130.0

type LambdaDestination interface {
	IEventDestination
	// The URI of the extension event destination.
	ExtensionUri() *string
	// The IAM policy document to invoke the event destination.
	PolicyDocument() awsiam.PolicyDocument
	// The type of the extension event destination.
	Type() SourceType
}

Use an AWS Lambda function as an event destination.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
})

func NewLambdaDestination added in v2.130.0

func NewLambdaDestination(func_ awslambda.IFunction) LambdaDestination

type LambdaValidator added in v2.130.0

type LambdaValidator interface {
	IValidator
	// The content of the validator.
	Content() *string
	// The type of validator.
	Type() ValidatorType
}

Defines an AWS Lambda validator.

Example:

var application application
var fn function

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	Validators: []iValidator{
		appconfig.JsonSchemaValidator_FromFile(jsii.String("schema.json")),
		appconfig.LambdaValidator_FromFunction(fn),
	},
})

func LambdaValidator_FromFunction added in v2.130.0

func LambdaValidator_FromFunction(func_ awslambda.Function) LambdaValidator

Defines an AWS Lambda validator from a Lambda function.

This will call `addPermission` to your function to grant AWS AppConfig permissions.

type Monitor added in v2.130.0

type Monitor interface {
	// The alarm ARN for AWS AppConfig to monitor.
	AlarmArn() *string
	// The IAM role ARN for AWS AppConfig to view the alarm state.
	AlarmRoleArn() *string
	// Indicates whether a CloudWatch alarm is a composite alarm.
	IsCompositeAlarm() *bool
	// The type of monitor.
	MonitorType() MonitorType
}

Defines monitors that will be associated with an AWS AppConfig environment.

Example:

var application application
var alarm alarm
var compositeAlarm compositeAlarm

appconfig.NewEnvironment(this, jsii.String("MyEnvironment"), &EnvironmentProps{
	Application: Application,
	Monitors: []monitor{
		appconfig.*monitor_FromCloudWatchAlarm(alarm),
		appconfig.*monitor_*FromCloudWatchAlarm(compositeAlarm),
	},
})

func Monitor_FromCfnMonitorsProperty added in v2.130.0

func Monitor_FromCfnMonitorsProperty(monitorsProperty *CfnEnvironment_MonitorsProperty) Monitor

Creates a Monitor from a CfnEnvironment.MonitorsProperty construct.

func Monitor_FromCloudWatchAlarm added in v2.130.0

func Monitor_FromCloudWatchAlarm(alarm awscloudwatch.IAlarm, alarmRole awsiam.IRole) Monitor

Creates a Monitor from a CloudWatch alarm.

If the alarm role is not specified, a role will be generated.

type MonitorType added in v2.130.0

type MonitorType string

The type of Monitor.

const (
	// A Monitor from a CloudWatch alarm.
	MonitorType_CLOUDWATCH MonitorType = "CLOUDWATCH"
	// A Monitor from a CfnEnvironment.MonitorsProperty construct.
	MonitorType_CFN_MONITORS_PROPERTY MonitorType = "CFN_MONITORS_PROPERTY"
)

type Parameter added in v2.130.0

type Parameter interface {
	// The description of the parameter.
	Description() *string
	// A boolean that indicates if the parameter is required or optional.
	IsRequired() *bool
	// The name of the parameter.
	Name() *string
	// The value of the parameter.
	Value() *string
}

Defines a parameter for an extension.

Example:

var fn function

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewLambdaDestination(fn),
		}),
	},
	Parameters: []parameter{
		appconfig.*parameter_Required(jsii.String("testParam"), jsii.String("true")),
		appconfig.*parameter_NotRequired(jsii.String("testNotRequiredParam")),
	},
})

func Parameter_NotRequired added in v2.130.0

func Parameter_NotRequired(name *string, value *string, description *string) Parameter

An optional parameter for an extension.

func Parameter_Required added in v2.130.0

func Parameter_Required(name *string, value *string, description *string) Parameter

A required parameter for an extension.

type Platform added in v2.130.0

type Platform string

Defines the platform for the AWS AppConfig Lambda extension.

const (
	Platform_X86_64 Platform = "X86_64"
	Platform_ARM_64 Platform = "ARM_64"
)

type RolloutStrategy added in v2.130.0

type RolloutStrategy interface {
	// The deployment duration of the rollout strategy.
	DeploymentDuration() awscdk.Duration
	// The final bake time of the deployment strategy.
	FinalBakeTime() awscdk.Duration
	// The growth factor of the rollout strategy.
	GrowthFactor() *float64
	// The growth type of the rollout strategy.
	GrowthType() GrowthType
}

Defines the rollout strategy for a deployment strategy and includes the growth factor, deployment duration, growth type, and optionally final bake time.

Example:

appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
	RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
		GrowthFactor: jsii.Number(20),
		DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
		FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(30)),
	}),
})

See: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html

func RolloutStrategy_ALL_AT_ONCE added in v2.130.0

func RolloutStrategy_ALL_AT_ONCE() RolloutStrategy

func RolloutStrategy_CANARY_10_PERCENT_20_MINUTES added in v2.130.0

func RolloutStrategy_CANARY_10_PERCENT_20_MINUTES() RolloutStrategy

func RolloutStrategy_Exponential added in v2.130.0

func RolloutStrategy_Exponential(props *RolloutStrategyProps) RolloutStrategy

Build your own exponential rollout strategy.

func RolloutStrategy_LINEAR_20_PERCENT_EVERY_6_MINUTES added in v2.130.0

func RolloutStrategy_LINEAR_20_PERCENT_EVERY_6_MINUTES() RolloutStrategy

func RolloutStrategy_LINEAR_50_PERCENT_EVERY_30_SECONDS added in v2.130.0

func RolloutStrategy_LINEAR_50_PERCENT_EVERY_30_SECONDS() RolloutStrategy

func RolloutStrategy_Linear added in v2.130.0

func RolloutStrategy_Linear(props *RolloutStrategyProps) RolloutStrategy

Build your own linear rollout strategy.

type RolloutStrategyProps added in v2.130.0

type RolloutStrategyProps struct {
	// The deployment duration of the deployment strategy.
	//
	// This defines
	// the total amount of time for a deployment to last.
	DeploymentDuration awscdk.Duration `field:"required" json:"deploymentDuration" yaml:"deploymentDuration"`
	// The growth factor of the deployment strategy.
	//
	// This defines
	// the percentage of targets to receive a deployed configuration
	// during each interval.
	GrowthFactor *float64 `field:"required" json:"growthFactor" yaml:"growthFactor"`
	// The final bake time of the deployment strategy.
	//
	// This setting specifies the amount of time AWS AppConfig monitors for Amazon
	// CloudWatch alarms after the configuration has been deployed to
	// 100% of its targets, before considering the deployment to be complete.
	// If an alarm is triggered during this time, AWS AppConfig rolls back
	// the deployment.
	// Default: Duration.minutes(0)
	//
	FinalBakeTime awscdk.Duration `field:"optional" json:"finalBakeTime" yaml:"finalBakeTime"`
}

Properties for the Rollout Strategy.

Example:

var application application

appconfig.NewHostedConfiguration(this, jsii.String("MyHostedConfiguration"), &HostedConfigurationProps{
	Application: Application,
	Content: appconfig.ConfigurationContent_FromInlineText(jsii.String("This is my configuration content.")),
	DeploymentStrategy: appconfig.NewDeploymentStrategy(this, jsii.String("MyDeploymentStrategy"), &DeploymentStrategyProps{
		RolloutStrategy: appconfig.RolloutStrategy_Linear(&RolloutStrategyProps{
			GrowthFactor: jsii.Number(15),
			DeploymentDuration: awscdk.Duration_Minutes(jsii.Number(30)),
			FinalBakeTime: awscdk.Duration_*Minutes(jsii.Number(15)),
		}),
	}),
})

type SnsDestination added in v2.130.0

type SnsDestination interface {
	IEventDestination
	// The URI of the extension event destination.
	ExtensionUri() *string
	// The IAM policy document to invoke the event destination.
	PolicyDocument() awsiam.PolicyDocument
	// The type of the extension event destination.
	Type() SourceType
}

Use an Amazon SNS topic as an event destination.

Example:

var topic topic

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewSnsDestination(topic),
		}),
	},
})

func NewSnsDestination added in v2.130.0

func NewSnsDestination(topic awssns.ITopic) SnsDestination

type SourceType added in v2.130.0

type SourceType string

Defines the source type for event destinations.

const (
	SourceType_LAMBDA SourceType = "LAMBDA"
	SourceType_SQS    SourceType = "SQS"
	SourceType_SNS    SourceType = "SNS"
	SourceType_EVENTS SourceType = "EVENTS"
)

type SourcedConfiguration added in v2.130.0

type SourcedConfiguration interface {
	constructs.Construct
	IConfiguration
	IExtensible
	// The application associated with the configuration.
	Application() IApplication
	ApplicationId() *string
	SetApplicationId(val *string)
	// The Amazon Resource Name (ARN) of the configuration profile.
	ConfigurationProfileArn() *string
	// The ID of the configuration profile.
	ConfigurationProfileId() *string
	// The deployment key for the configuration.
	DeploymentKey() awskms.IKey
	// The deployment strategy for the configuration.
	DeploymentStrategy() IDeploymentStrategy
	// The environments to deploy to.
	DeployTo() *[]IEnvironment
	// The description of the configuration.
	Description() *string
	Extensible() ExtensibleBase
	SetExtensible(val ExtensibleBase)
	// The location where the configuration is stored.
	Location() ConfigurationSource
	// The name of the configuration.
	Name() *string
	// The tree node.
	Node() constructs.Node
	// The IAM role to retrieve the configuration.
	RetrievalRole() awsiam.IRole
	// The key to decrypt the configuration if applicable.
	//
	// This key
	// can be used when storing configuration in AWS Secrets Manager, Systems Manager Parameter Store,
	// or Amazon S3.
	SourceKey() awskms.IKey
	// The configuration type.
	Type() ConfigurationType
	// The validators for the configuration.
	Validators() *[]IValidator
	// The version number of the configuration to deploy.
	VersionNumber() *string
	AddExistingEnvironmentsToApplication()
	// Adds an extension association to the configuration profile.
	AddExtension(extension IExtension)
	DeployConfigToEnvironments()
	// Adds an extension defined by the action point and event destination and also creates an extension association to the configuration profile.
	On(actionPoint ActionPoint, eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_BAKING extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentBaking(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_COMPLETE extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentComplete(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_ROLLED_BACK extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentRolledBack(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_START extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentStart(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds an ON_DEPLOYMENT_STEP extension with the provided event destination and also creates an extension association to the configuration profile.
	OnDeploymentStep(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_CREATE_HOSTED_CONFIGURATION_VERSION extension with the provided event destination and also creates an extension association to the configuration profile.
	PreCreateHostedConfigurationVersion(eventDestination IEventDestination, options *ExtensionOptions)
	// Adds a PRE_START_DEPLOYMENT extension with the provided event destination and also creates an extension association to the configuration profile.
	PreStartDeployment(eventDestination IEventDestination, options *ExtensionOptions)
	// Returns a string representation of this construct.
	ToString() *string
}

A sourced configuration represents configuration stored in an Amazon S3 bucket, AWS Secrets Manager secret, Systems Manager (SSM) Parameter Store parameter, SSM document, or AWS CodePipeline.

Example:

var application application
var bucket bucket

appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
	Type: appconfig.ConfigurationType_FEATURE_FLAGS,
	Name: jsii.String("MyConfig"),
	Description: jsii.String("This is my sourced configuration from CDK."),
})

func NewSourcedConfiguration added in v2.130.0

func NewSourcedConfiguration(scope constructs.Construct, id *string, props *SourcedConfigurationProps) SourcedConfiguration

type SourcedConfigurationOptions added in v2.130.0

type SourcedConfigurationOptions struct {
	// The deployment key of the configuration.
	// Default: - None.
	//
	DeploymentKey awskms.IKey `field:"optional" json:"deploymentKey" yaml:"deploymentKey"`
	// The deployment strategy for the configuration.
	// Default: - A deployment strategy with the rollout strategy set to
	// RolloutStrategy.CANARY_10_PERCENT_20_MINUTES
	//
	DeploymentStrategy IDeploymentStrategy `field:"optional" json:"deploymentStrategy" yaml:"deploymentStrategy"`
	// The list of environments to deploy the configuration to.
	//
	// If this parameter is not specified, then there will be no
	// deployment created alongside this configuration.
	//
	// Deployments can be added later using the `IEnvironment.addDeployment` or
	// `IEnvironment.addDeployments` methods.
	// Default: - None.
	//
	DeployTo *[]IEnvironment `field:"optional" json:"deployTo" yaml:"deployTo"`
	// The description of the configuration.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the configuration.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of configuration.
	// Default: ConfigurationType.FREEFORM
	//
	Type ConfigurationType `field:"optional" json:"type" yaml:"type"`
	// The validators for the configuration.
	// Default: - No validators.
	//
	Validators *[]IValidator `field:"optional" json:"validators" yaml:"validators"`
	// The location where the configuration is stored.
	Location ConfigurationSource `field:"required" json:"location" yaml:"location"`
	// The IAM role to retrieve the configuration.
	// Default: - A role is generated.
	//
	RetrievalRole awsiam.IRole `field:"optional" json:"retrievalRole" yaml:"retrievalRole"`
	// The version number of the sourced configuration to deploy.
	//
	// If this is not specified,
	// then there will be no deployment.
	// Default: - None.
	//
	VersionNumber *string `field:"optional" json:"versionNumber" yaml:"versionNumber"`
}

Options for SourcedConfiguration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var configurationSource configurationSource
var deploymentStrategy deploymentStrategy
var environment environment
var key key
var role role
var validator iValidator

sourcedConfigurationOptions := &SourcedConfigurationOptions{
	Location: configurationSource,

	// the properties below are optional
	DeploymentKey: key,
	DeploymentStrategy: deploymentStrategy,
	DeployTo: []iEnvironment{
		environment,
	},
	Description: jsii.String("description"),
	Name: jsii.String("name"),
	RetrievalRole: role,
	Type: awscdk.Aws_appconfig.ConfigurationType_FREEFORM,
	Validators: []*iValidator{
		validator,
	},
	VersionNumber: jsii.String("versionNumber"),
}

type SourcedConfigurationProps added in v2.130.0

type SourcedConfigurationProps struct {
	// The deployment key of the configuration.
	// Default: - None.
	//
	DeploymentKey awskms.IKey `field:"optional" json:"deploymentKey" yaml:"deploymentKey"`
	// The deployment strategy for the configuration.
	// Default: - A deployment strategy with the rollout strategy set to
	// RolloutStrategy.CANARY_10_PERCENT_20_MINUTES
	//
	DeploymentStrategy IDeploymentStrategy `field:"optional" json:"deploymentStrategy" yaml:"deploymentStrategy"`
	// The list of environments to deploy the configuration to.
	//
	// If this parameter is not specified, then there will be no
	// deployment created alongside this configuration.
	//
	// Deployments can be added later using the `IEnvironment.addDeployment` or
	// `IEnvironment.addDeployments` methods.
	// Default: - None.
	//
	DeployTo *[]IEnvironment `field:"optional" json:"deployTo" yaml:"deployTo"`
	// The description of the configuration.
	// Default: - No description.
	//
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The name of the configuration.
	// Default: - A name is generated.
	//
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of configuration.
	// Default: ConfigurationType.FREEFORM
	//
	Type ConfigurationType `field:"optional" json:"type" yaml:"type"`
	// The validators for the configuration.
	// Default: - No validators.
	//
	Validators *[]IValidator `field:"optional" json:"validators" yaml:"validators"`
	// The application associated with the configuration.
	Application IApplication `field:"required" json:"application" yaml:"application"`
	// The location where the configuration is stored.
	Location ConfigurationSource `field:"required" json:"location" yaml:"location"`
	// The IAM role to retrieve the configuration.
	// Default: - A role is generated.
	//
	RetrievalRole awsiam.IRole `field:"optional" json:"retrievalRole" yaml:"retrievalRole"`
	// The version number of the sourced configuration to deploy.
	//
	// If this is not specified,
	// then there will be no deployment.
	// Default: - None.
	//
	VersionNumber *string `field:"optional" json:"versionNumber" yaml:"versionNumber"`
}

Properties for SourcedConfiguration.

Example:

var application application
var bucket bucket

appconfig.NewSourcedConfiguration(this, jsii.String("MySourcedConfiguration"), &SourcedConfigurationProps{
	Application: Application,
	Location: appconfig.ConfigurationSource_FromBucket(bucket, jsii.String("path/to/file.json")),
	Type: appconfig.ConfigurationType_FEATURE_FLAGS,
	Name: jsii.String("MyConfig"),
	Description: jsii.String("This is my sourced configuration from CDK."),
})

type SqsDestination added in v2.130.0

type SqsDestination interface {
	IEventDestination
	// The URI of the extension event destination.
	ExtensionUri() *string
	// The IAM policy document to invoke the event destination.
	PolicyDocument() awsiam.PolicyDocument
	// The type of the extension event destination.
	Type() SourceType
}

Use an Amazon SQS queue as an event destination.

Example:

var queue queue

appconfig.NewExtension(this, jsii.String("MyExtension"), &ExtensionProps{
	Actions: []action{
		appconfig.NewAction(&ActionProps{
			ActionPoints: []actionPoint{
				appconfig.*actionPoint_ON_DEPLOYMENT_START,
			},
			EventDestination: appconfig.NewSqsDestination(queue),
		}),
	},
})

func NewSqsDestination added in v2.130.0

func NewSqsDestination(queue awssqs.IQueue) SqsDestination

type ValidatorType added in v2.130.0

type ValidatorType string

The validator type.

const (
	// JSON Scema validator.
	ValidatorType_JSON_SCHEMA ValidatorType = "JSON_SCHEMA"
	// Validate using a Lambda function.
	ValidatorType_LAMBDA ValidatorType = "LAMBDA"
)

Source Files

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL