cloudassemblyschema

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: 4 Imported by: 5

README

Cloud Assembly Schema

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

Cloud Assembly

The Cloud Assembly is the output of the synthesis operation. It is produced as part of the cdk synth command, or the app.synth() method invocation.

Its essentially a set of files and directories, one of which is the manifest.json file. It defines the set of instructions that are needed in order to deploy the assembly directory.

For example, when cdk deploy is executed, the CLI reads this file and performs its instructions:

  • Build container images.
  • Upload assets.
  • Deploy CloudFormation templates.

Therefore, the assembly is how the CDK class library and CDK CLI (or any other consumer) communicate. To ensure compatibility between the assembly and its consumers, we treat the manifest file as a well defined, versioned schema.

Schema

This module contains the typescript structs that comprise the manifest.json file, as well as the generated json-schema.

Versioning

The schema version is specified in the cloud-assembly.version.json file, under the version property. It follows semantic versioning, but with a small twist.

When we add instructions to the assembly, they are reflected in the manifest file and the json-schema accordingly. Every such instruction, is crucial for ensuring the correct deployment behavior. This means that to properly deploy a cloud assembly, consumers must be aware of every such instruction modification.

For this reason, every change to the schema, even though it might not strictly break validation of the json-schema format, is considered major version bump.

How to consume

If you'd like to consume the schema file in order to do validations on manifest.json files, simply download it from this repo and run it against standard json-schema validators, such as jsonschema.

Consumers must take into account the major version of the schema they are consuming. They should reject cloud assemblies with a major version that is higher than what they expect. While schema validation might pass on such assemblies, the deployment integrity cannot be guaranteed because some instructions will be ignored.

For example, if your consumer was built when the schema version was 2.0.0, you should reject deploying cloud assemblies with a manifest version of 3.0.0.

Contributing

See Contribution Guide

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Manifest_SaveAssemblyManifest

func Manifest_SaveAssemblyManifest(manifest *AssemblyManifest, filePath *string)

Validates and saves the cloud assembly manifest to file.

func Manifest_SaveAssetManifest

func Manifest_SaveAssetManifest(manifest *AssetManifest, filePath *string)

Validates and saves the asset manifest to file.

func Manifest_SaveIntegManifest added in v2.20.0

func Manifest_SaveIntegManifest(manifest *IntegManifest, filePath *string)

Validates and saves the integ manifest to file.

func Manifest_Version

func Manifest_Version() *string

Fetch the current schema version number.

Types

type AmiContextQuery

type AmiContextQuery struct {
	// Account to query.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Filters to DescribeImages call.
	Filters *map[string]*[]*string `field:"required" json:"filters" yaml:"filters"`
	// Region to query.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
	// Owners to DescribeImages call.
	// Default: - All owners.
	//
	Owners *[]*string `field:"optional" json:"owners" yaml:"owners"`
}

Query to AMI context provider.

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"

amiContextQuery := &AmiContextQuery{
	Account: jsii.String("account"),
	Filters: map[string][]*string{
		"filtersKey": []*string{
			jsii.String("filters"),
		},
	},
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
	Owners: []*string{
		jsii.String("owners"),
	},
}

type ArtifactManifest

type ArtifactManifest struct {
	// The type of artifact.
	Type ArtifactType `field:"required" json:"type" yaml:"type"`
	// IDs of artifacts that must be deployed before this artifact.
	// Default: - no dependencies.
	//
	Dependencies *[]*string `field:"optional" json:"dependencies" yaml:"dependencies"`
	// A string that represents this artifact.
	//
	// Should only be used in user interfaces.
	// Default: - no display name.
	//
	DisplayName *string `field:"optional" json:"displayName" yaml:"displayName"`
	// The environment into which this artifact is deployed.
	// Default: - no envrionment.
	//
	Environment *string `field:"optional" json:"environment" yaml:"environment"`
	// Associated metadata.
	// Default: - no metadata.
	//
	Metadata *map[string]*[]*MetadataEntry `field:"optional" json:"metadata" yaml:"metadata"`
	// The set of properties for this artifact (depends on type).
	// Default: - no properties.
	//
	Properties interface{} `field:"optional" json:"properties" yaml:"properties"`
}

A manifest for a single artifact within the cloud assembly.

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"

artifactManifest := &ArtifactManifest{
	Type: awscdk.Cloud_assembly_schema.ArtifactType_NONE,

	// the properties below are optional
	Dependencies: []*string{
		jsii.String("dependencies"),
	},
	DisplayName: jsii.String("displayName"),
	Environment: jsii.String("environment"),
	Metadata: map[string][]metadataEntry{
		"metadataKey": []*metadataEntry{
			&metadataEntry{
				"type": jsii.String("type"),

				// the properties below are optional
				"data": jsii.String("data"),
				"trace": []*string{
					jsii.String("trace"),
				},
			},
		},
	},
	Properties: &AwsCloudFormationStackProperties{
		TemplateFile: jsii.String("templateFile"),

		// the properties below are optional
		AssumeRoleArn: jsii.String("assumeRoleArn"),
		AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
		BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
		CloudFormationExecutionRoleArn: jsii.String("cloudFormationExecutionRoleArn"),
		LookupRole: &BootstrapRole{
			Arn: jsii.String("arn"),

			// the properties below are optional
			AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
			BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
			RequiresBootstrapStackVersion: jsii.Number(123),
		},
		Parameters: map[string]*string{
			"parametersKey": jsii.String("parameters"),
		},
		RequiresBootstrapStackVersion: jsii.Number(123),
		StackName: jsii.String("stackName"),
		StackTemplateAssetObjectUrl: jsii.String("stackTemplateAssetObjectUrl"),
		Tags: map[string]*string{
			"tagsKey": jsii.String("tags"),
		},
		TerminationProtection: jsii.Boolean(false),
		ValidateOnSynth: jsii.Boolean(false),
	},
}

type ArtifactMetadataEntryType

type ArtifactMetadataEntryType string

Type of artifact metadata entry.

const (
	// Asset in metadata.
	ArtifactMetadataEntryType_ASSET ArtifactMetadataEntryType = "ASSET"
	// Metadata key used to print INFO-level messages by the toolkit when an app is syntheized.
	ArtifactMetadataEntryType_INFO ArtifactMetadataEntryType = "INFO"
	// Metadata key used to print WARNING-level messages by the toolkit when an app is syntheized.
	ArtifactMetadataEntryType_WARN ArtifactMetadataEntryType = "WARN"
	// Metadata key used to print ERROR-level messages by the toolkit when an app is syntheized.
	ArtifactMetadataEntryType_ERROR ArtifactMetadataEntryType = "ERROR"
	// Represents the CloudFormation logical ID of a resource at a certain path.
	ArtifactMetadataEntryType_LOGICAL_ID ArtifactMetadataEntryType = "LOGICAL_ID"
	// Represents tags of a stack.
	ArtifactMetadataEntryType_STACK_TAGS ArtifactMetadataEntryType = "STACK_TAGS"
)

type ArtifactType

type ArtifactType string

Type of cloud artifact.

const (
	// Stub required because of JSII.
	ArtifactType_NONE ArtifactType = "NONE"
	// The artifact is an AWS CloudFormation stack.
	ArtifactType_AWS_CLOUDFORMATION_STACK ArtifactType = "AWS_CLOUDFORMATION_STACK"
	// The artifact contains the CDK application's construct tree.
	ArtifactType_CDK_TREE ArtifactType = "CDK_TREE"
	// Manifest for all assets in the Cloud Assembly.
	ArtifactType_ASSET_MANIFEST ArtifactType = "ASSET_MANIFEST"
	// Nested Cloud Assembly.
	ArtifactType_NESTED_CLOUD_ASSEMBLY ArtifactType = "NESTED_CLOUD_ASSEMBLY"
)

type AssemblyManifest

type AssemblyManifest struct {
	// Protocol version.
	Version *string `field:"required" json:"version" yaml:"version"`
	// The set of artifacts in this assembly.
	// Default: - no artifacts.
	//
	Artifacts *map[string]*ArtifactManifest `field:"optional" json:"artifacts" yaml:"artifacts"`
	// Missing context information.
	//
	// If this field has values, it means that the
	// cloud assembly is not complete and should not be deployed.
	// Default: - no missing context.
	//
	Missing *[]*MissingContext `field:"optional" json:"missing" yaml:"missing"`
	// Runtime information.
	// Default: - no info.
	//
	Runtime *RuntimeInfo `field:"optional" json:"runtime" yaml:"runtime"`
}

A manifest which describes the cloud assembly.

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"

assemblyManifest := &AssemblyManifest{
	Version: jsii.String("version"),

	// the properties below are optional
	Artifacts: map[string]artifactManifest{
		"artifactsKey": &artifactManifest{
			"type": awscdk.cloud_assembly_schema.ArtifactType_NONE,

			// the properties below are optional
			"dependencies": []*string{
				jsii.String("dependencies"),
			},
			"displayName": jsii.String("displayName"),
			"environment": jsii.String("environment"),
			"metadata": map[string][]MetadataEntry{
				"metadataKey": []MetadataEntry{
					&MetadataEntry{
						"type": jsii.String("type"),

						// the properties below are optional
						"data": jsii.String("data"),
						"trace": []*string{
							jsii.String("trace"),
						},
					},
				},
			},
			"properties": &AwsCloudFormationStackProperties{
				"templateFile": jsii.String("templateFile"),

				// the properties below are optional
				"assumeRoleArn": jsii.String("assumeRoleArn"),
				"assumeRoleExternalId": jsii.String("assumeRoleExternalId"),
				"bootstrapStackVersionSsmParameter": jsii.String("bootstrapStackVersionSsmParameter"),
				"cloudFormationExecutionRoleArn": jsii.String("cloudFormationExecutionRoleArn"),
				"lookupRole": &BootstrapRole{
					"arn": jsii.String("arn"),

					// the properties below are optional
					"assumeRoleExternalId": jsii.String("assumeRoleExternalId"),
					"bootstrapStackVersionSsmParameter": jsii.String("bootstrapStackVersionSsmParameter"),
					"requiresBootstrapStackVersion": jsii.Number(123),
				},
				"parameters": map[string]*string{
					"parametersKey": jsii.String("parameters"),
				},
				"requiresBootstrapStackVersion": jsii.Number(123),
				"stackName": jsii.String("stackName"),
				"stackTemplateAssetObjectUrl": jsii.String("stackTemplateAssetObjectUrl"),
				"tags": map[string]*string{
					"tagsKey": jsii.String("tags"),
				},
				"terminationProtection": jsii.Boolean(false),
				"validateOnSynth": jsii.Boolean(false),
			},
		},
	},
	Missing: []missingContext{
		&missingContext{
			Key: jsii.String("key"),
			Props: &AmiContextQuery{
				Account: jsii.String("account"),
				Filters: map[string][]*string{
					"filtersKey": []*string{
						jsii.String("filters"),
					},
				},
				Region: jsii.String("region"),

				// the properties below are optional
				LookupRoleArn: jsii.String("lookupRoleArn"),
				Owners: []interface{}{
					jsii.String("owners"),
				},
			},
			Provider: awscdk.Cloud_assembly_schema.ContextProvider_AMI_PROVIDER,
		},
	},
	Runtime: &RuntimeInfo{
		Libraries: map[string]*string{
			"librariesKey": jsii.String("libraries"),
		},
	},
}

func Manifest_LoadAssemblyManifest

func Manifest_LoadAssemblyManifest(filePath *string, options *LoadManifestOptions) *AssemblyManifest

Load and validates the cloud assembly manifest from file.

type AssetManifest

type AssetManifest struct {
	// Version of the manifest.
	Version *string `field:"required" json:"version" yaml:"version"`
	// The Docker image assets in this manifest.
	// Default: - No Docker images.
	//
	DockerImages *map[string]*DockerImageAsset `field:"optional" json:"dockerImages" yaml:"dockerImages"`
	// The file assets in this manifest.
	// Default: - No files.
	//
	Files *map[string]*FileAsset `field:"optional" json:"files" yaml:"files"`
}

Definitions for the asset manifest.

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"

assetManifest := &AssetManifest{
	Version: jsii.String("version"),

	// the properties below are optional
	DockerImages: map[string]dockerImageAsset{
		"dockerImagesKey": &dockerImageAsset{
			"destinations": map[string]DockerImageDestination{
				"destinationsKey": &DockerImageDestination{
					"imageTag": jsii.String("imageTag"),
					"repositoryName": jsii.String("repositoryName"),

					// the properties below are optional
					"assumeRoleArn": jsii.String("assumeRoleArn"),
					"assumeRoleExternalId": jsii.String("assumeRoleExternalId"),
					"region": jsii.String("region"),
				},
			},
			"source": &DockerImageSource{
				"cacheDisabled": jsii.Boolean(false),
				"cacheFrom": []DockerCacheOption{
					&DockerCacheOption{
						"type": jsii.String("type"),

						// the properties below are optional
						"params": map[string]*string{
							"paramsKey": jsii.String("params"),
						},
					},
				},
				"cacheTo": &DockerCacheOption{
					"type": jsii.String("type"),

					// the properties below are optional
					"params": map[string]*string{
						"paramsKey": jsii.String("params"),
					},
				},
				"directory": jsii.String("directory"),
				"dockerBuildArgs": map[string]*string{
					"dockerBuildArgsKey": jsii.String("dockerBuildArgs"),
				},
				"dockerBuildSecrets": map[string]*string{
					"dockerBuildSecretsKey": jsii.String("dockerBuildSecrets"),
				},
				"dockerBuildSsh": jsii.String("dockerBuildSsh"),
				"dockerBuildTarget": jsii.String("dockerBuildTarget"),
				"dockerFile": jsii.String("dockerFile"),
				"dockerOutputs": []*string{
					jsii.String("dockerOutputs"),
				},
				"executable": []*string{
					jsii.String("executable"),
				},
				"networkMode": jsii.String("networkMode"),
				"platform": jsii.String("platform"),
			},
		},
	},
	Files: map[string]fileAsset{
		"filesKey": &fileAsset{
			"destinations": map[string]FileDestination{
				"destinationsKey": &FileDestination{
					"bucketName": jsii.String("bucketName"),
					"objectKey": jsii.String("objectKey"),

					// the properties below are optional
					"assumeRoleArn": jsii.String("assumeRoleArn"),
					"assumeRoleExternalId": jsii.String("assumeRoleExternalId"),
					"region": jsii.String("region"),
				},
			},
			"source": &FileSource{
				"executable": []*string{
					jsii.String("executable"),
				},
				"packaging": awscdk.cloud_assembly_schema.FileAssetPackaging_FILE,
				"path": jsii.String("path"),
			},
		},
	},
}

func Manifest_LoadAssetManifest

func Manifest_LoadAssetManifest(filePath *string) *AssetManifest

Load and validates the asset manifest from file.

type AssetManifestOptions added in v2.45.0

type AssetManifestOptions struct {
	// SSM parameter where the bootstrap stack version number can be found.
	//
	// - If this value is not set, the bootstrap stack name must be known at
	//   deployment time so the stack version can be looked up from the stack
	//   outputs.
	// - If this value is set, the bootstrap stack can have any name because
	//   we won't need to look it up.
	// Default: - Bootstrap stack version number looked up.
	//
	BootstrapStackVersionSsmParameter *string `field:"optional" json:"bootstrapStackVersionSsmParameter" yaml:"bootstrapStackVersionSsmParameter"`
	// Version of bootstrap stack required to deploy this stack.
	// Default: - Version 1 (basic modern bootstrap stack).
	//
	RequiresBootstrapStackVersion *float64 `field:"optional" json:"requiresBootstrapStackVersion" yaml:"requiresBootstrapStackVersion"`
}

Configuration options for the Asset Manifest.

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"

assetManifestOptions := &AssetManifestOptions{
	BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
	RequiresBootstrapStackVersion: jsii.Number(123),
}

type AssetManifestProperties

type AssetManifestProperties struct {
	// SSM parameter where the bootstrap stack version number can be found.
	//
	// - If this value is not set, the bootstrap stack name must be known at
	//   deployment time so the stack version can be looked up from the stack
	//   outputs.
	// - If this value is set, the bootstrap stack can have any name because
	//   we won't need to look it up.
	// Default: - Bootstrap stack version number looked up.
	//
	BootstrapStackVersionSsmParameter *string `field:"optional" json:"bootstrapStackVersionSsmParameter" yaml:"bootstrapStackVersionSsmParameter"`
	// Version of bootstrap stack required to deploy this stack.
	// Default: - Version 1 (basic modern bootstrap stack).
	//
	RequiresBootstrapStackVersion *float64 `field:"optional" json:"requiresBootstrapStackVersion" yaml:"requiresBootstrapStackVersion"`
	// Filename of the asset manifest.
	File *string `field:"required" json:"file" yaml:"file"`
}

Artifact properties for the Asset Manifest.

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"

assetManifestProperties := &AssetManifestProperties{
	File: jsii.String("file"),

	// the properties below are optional
	BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
	RequiresBootstrapStackVersion: jsii.Number(123),
}

type AvailabilityZonesContextQuery

type AvailabilityZonesContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
}

Query to availability zone context provider.

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"

availabilityZonesContextQuery := &AvailabilityZonesContextQuery{
	Account: jsii.String("account"),
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
}

type AwsCloudFormationStackProperties

type AwsCloudFormationStackProperties struct {
	// A file relative to the assembly root which contains the CloudFormation template for this stack.
	TemplateFile *string `field:"required" json:"templateFile" yaml:"templateFile"`
	// The role that needs to be assumed to deploy the stack.
	// Default: - No role is assumed (current credentials are used).
	//
	AssumeRoleArn *string `field:"optional" json:"assumeRoleArn" yaml:"assumeRoleArn"`
	// External ID to use when assuming role for cloudformation deployments.
	// Default: - No external ID.
	//
	AssumeRoleExternalId *string `field:"optional" json:"assumeRoleExternalId" yaml:"assumeRoleExternalId"`
	// SSM parameter where the bootstrap stack version number can be found.
	//
	// Only used if `requiresBootstrapStackVersion` is set.
	//
	// - If this value is not set, the bootstrap stack name must be known at
	//   deployment time so the stack version can be looked up from the stack
	//   outputs.
	// - If this value is set, the bootstrap stack can have any name because
	//   we won't need to look it up.
	// Default: - Bootstrap stack version number looked up.
	//
	BootstrapStackVersionSsmParameter *string `field:"optional" json:"bootstrapStackVersionSsmParameter" yaml:"bootstrapStackVersionSsmParameter"`
	// The role that is passed to CloudFormation to execute the change set.
	// Default: - No role is passed (currently assumed role/credentials are used).
	//
	CloudFormationExecutionRoleArn *string `field:"optional" json:"cloudFormationExecutionRoleArn" yaml:"cloudFormationExecutionRoleArn"`
	// The role to use to look up values from the target AWS account.
	// Default: - No role is assumed (current credentials are used).
	//
	LookupRole *BootstrapRole `field:"optional" json:"lookupRole" yaml:"lookupRole"`
	// Values for CloudFormation stack parameters that should be passed when the stack is deployed.
	// Default: - No parameters.
	//
	Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"`
	// Version of bootstrap stack required to deploy this stack.
	// Default: - No bootstrap stack required.
	//
	RequiresBootstrapStackVersion *float64 `field:"optional" json:"requiresBootstrapStackVersion" yaml:"requiresBootstrapStackVersion"`
	// The name to use for the CloudFormation stack.
	// Default: - name derived from artifact ID.
	//
	StackName *string `field:"optional" json:"stackName" yaml:"stackName"`
	// If the stack template has already been included in the asset manifest, its asset URL.
	// Default: - Not uploaded yet, upload just before deploying.
	//
	StackTemplateAssetObjectUrl *string `field:"optional" json:"stackTemplateAssetObjectUrl" yaml:"stackTemplateAssetObjectUrl"`
	// Values for CloudFormation stack tags that should be passed when the stack is deployed.
	// Default: - No tags.
	//
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
	// Whether to enable termination protection for this stack.
	// Default: false.
	//
	TerminationProtection *bool `field:"optional" json:"terminationProtection" yaml:"terminationProtection"`
	// Whether this stack should be validated by the CLI after synthesis.
	// Default: - false.
	//
	ValidateOnSynth *bool `field:"optional" json:"validateOnSynth" yaml:"validateOnSynth"`
}

Artifact properties for CloudFormation stacks.

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"

awsCloudFormationStackProperties := &AwsCloudFormationStackProperties{
	TemplateFile: jsii.String("templateFile"),

	// the properties below are optional
	AssumeRoleArn: jsii.String("assumeRoleArn"),
	AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
	BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
	CloudFormationExecutionRoleArn: jsii.String("cloudFormationExecutionRoleArn"),
	LookupRole: &BootstrapRole{
		Arn: jsii.String("arn"),

		// the properties below are optional
		AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
		BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
		RequiresBootstrapStackVersion: jsii.Number(123),
	},
	Parameters: map[string]*string{
		"parametersKey": jsii.String("parameters"),
	},
	RequiresBootstrapStackVersion: jsii.Number(123),
	StackName: jsii.String("stackName"),
	StackTemplateAssetObjectUrl: jsii.String("stackTemplateAssetObjectUrl"),
	Tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	TerminationProtection: jsii.Boolean(false),
	ValidateOnSynth: jsii.Boolean(false),
}

type AwsDestination

type AwsDestination struct {
	// The role that needs to be assumed while publishing this asset.
	// Default: - No role will be assumed.
	//
	AssumeRoleArn *string `field:"optional" json:"assumeRoleArn" yaml:"assumeRoleArn"`
	// The ExternalId that needs to be supplied while assuming this role.
	// Default: - No ExternalId will be supplied.
	//
	AssumeRoleExternalId *string `field:"optional" json:"assumeRoleExternalId" yaml:"assumeRoleExternalId"`
	// The region where this asset will need to be published.
	// Default: - Current region.
	//
	Region *string `field:"optional" json:"region" yaml:"region"`
}

Destination for assets that need to be uploaded to AWS.

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"

awsDestination := &AwsDestination{
	AssumeRoleArn: jsii.String("assumeRoleArn"),
	AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
	Region: jsii.String("region"),
}

type BootstrapRole added in v2.7.0

type BootstrapRole struct {
	// The ARN of the IAM role created as part of bootrapping e.g. lookupRoleArn.
	Arn *string `field:"required" json:"arn" yaml:"arn"`
	// External ID to use when assuming the bootstrap role.
	// Default: - No external ID.
	//
	AssumeRoleExternalId *string `field:"optional" json:"assumeRoleExternalId" yaml:"assumeRoleExternalId"`
	// Name of SSM parameter with bootstrap stack version.
	// Default: - Discover SSM parameter by reading stack.
	//
	BootstrapStackVersionSsmParameter *string `field:"optional" json:"bootstrapStackVersionSsmParameter" yaml:"bootstrapStackVersionSsmParameter"`
	// Version of bootstrap stack required to use this role.
	// Default: - No bootstrap stack required.
	//
	RequiresBootstrapStackVersion *float64 `field:"optional" json:"requiresBootstrapStackVersion" yaml:"requiresBootstrapStackVersion"`
}

Information needed to access an IAM role created as part of the bootstrap 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"

bootstrapRole := &BootstrapRole{
	Arn: jsii.String("arn"),

	// the properties below are optional
	AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
	BootstrapStackVersionSsmParameter: jsii.String("bootstrapStackVersionSsmParameter"),
	RequiresBootstrapStackVersion: jsii.Number(123),
}

type CdkCommand added in v2.20.0

type CdkCommand struct {
	// Whether or not to run this command as part of the workflow This can be used if you only want to test some of the workflow for example enable `synth` and disable `deploy` & `destroy` in order to limit the test to synthesis.
	// Default: true.
	//
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// This can be used in combination with `expectedError` to validate that a specific message is returned.
	// Default: - do not validate message.
	//
	ExpectedMessage *string `field:"optional" json:"expectedMessage" yaml:"expectedMessage"`
	// If the runner should expect this command to fail.
	// Default: false.
	//
	ExpectError *bool `field:"optional" json:"expectError" yaml:"expectError"`
}

Represents a cdk command i.e. `synth`, `deploy`, & `destroy`.

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"

cdkCommand := &CdkCommand{
	Enabled: jsii.Boolean(false),
	ExpectedMessage: jsii.String("expectedMessage"),
	ExpectError: jsii.Boolean(false),
}

type CdkCommands added in v2.20.0

type CdkCommands struct {
	// Options to for the cdk deploy command.
	// Default: - default deploy options.
	//
	Deploy *DeployCommand `field:"optional" json:"deploy" yaml:"deploy"`
	// Options to for the cdk destroy command.
	// Default: - default destroy options.
	//
	Destroy *DestroyCommand `field:"optional" json:"destroy" yaml:"destroy"`
}

Options for specific cdk commands that are run as part of the integration test workflow.

Example:

app := awscdk.NewApp()

stackUnderTest := awscdk.NewStack(app, jsii.String("StackUnderTest"))

stack := awscdk.NewStack(app, jsii.String("stack"))

testCase := awscdkintegtestsalpha.NewIntegTest(app, jsii.String("CustomizedDeploymentWorkflow"), &IntegTestProps{
	TestCases: []stack{
		stackUnderTest,
	},
	DiffAssets: jsii.Boolean(true),
	StackUpdateWorkflow: jsii.Boolean(true),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				RequireApproval: awscdk.RequireApproval_NEVER,
				Json: jsii.Boolean(true),
			},
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				Force: jsii.Boolean(true),
			},
		},
	},
})

type ContainerImageAssetCacheOption added in v2.69.0

type ContainerImageAssetCacheOption struct {
	// The type of cache to use.
	//
	// Refer to https://docs.docker.com/build/cache/backends/ for full list of backends.
	//
	// Example:
	//   "registry"
	//
	// Default: - unspecified.
	//
	Type *string `field:"required" json:"type" yaml:"type"`
	// Any parameters to pass into the docker cache backend configuration.
	//
	// Refer to https://docs.docker.com/build/cache/backends/ for cache backend configuration.
	//
	// Example:
	//   var branch string
	//
	//
	//   params := map[string]interface{}{
	//   	"ref": fmt.Sprintf("12345678.dkr.ecr.us-west-2.amazonaws.com/cache:%v", branch),
	//   	"mode": jsii.String("max"),
	//   }
	//
	// Default: {} No options provided.
	//
	Params *map[string]*string `field:"optional" json:"params" yaml:"params"`
}

Options for configuring the Docker cache backend.

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"

containerImageAssetCacheOption := &ContainerImageAssetCacheOption{
	Type: jsii.String("type"),

	// the properties below are optional
	Params: map[string]*string{
		"paramsKey": jsii.String("params"),
	},
}

type ContainerImageAssetMetadataEntry

type ContainerImageAssetMetadataEntry struct {
	// Logical identifier for the asset.
	Id *string `field:"required" json:"id" yaml:"id"`
	// Type of asset.
	Packaging *string `field:"required" json:"packaging" yaml:"packaging"`
	// Path on disk to the asset.
	Path *string `field:"required" json:"path" yaml:"path"`
	// The hash of the asset source.
	SourceHash *string `field:"required" json:"sourceHash" yaml:"sourceHash"`
	// Build args to pass to the `docker build` command.
	// Default: no build args are passed.
	//
	BuildArgs *map[string]*string `field:"optional" json:"buildArgs" yaml:"buildArgs"`
	// Build secrets to pass to the `docker build` command.
	// Default: no build secrets are passed.
	//
	BuildSecrets *map[string]*string `field:"optional" json:"buildSecrets" yaml:"buildSecrets"`
	// SSH agent socket or keys to pass to the `docker build` command.
	// Default: no ssh arg is passed.
	//
	BuildSsh *string `field:"optional" json:"buildSsh" yaml:"buildSsh"`
	// Disable the cache and pass `--no-cache` to the `docker build` command.
	// Default: - cache is used.
	//
	CacheDisabled *bool `field:"optional" json:"cacheDisabled" yaml:"cacheDisabled"`
	// Cache from options to pass to the `docker build` command.
	// See: https://docs.docker.com/build/cache/backends/
	//
	// Default: - no cache from options are passed to the build command.
	//
	CacheFrom *[]*ContainerImageAssetCacheOption `field:"optional" json:"cacheFrom" yaml:"cacheFrom"`
	// Cache to options to pass to the `docker build` command.
	// See: https://docs.docker.com/build/cache/backends/
	//
	// Default: - no cache to options are passed to the build command.
	//
	CacheTo *ContainerImageAssetCacheOption `field:"optional" json:"cacheTo" yaml:"cacheTo"`
	// Path to the Dockerfile (relative to the directory).
	// Default: - no file is passed.
	//
	File *string `field:"optional" json:"file" yaml:"file"`
	// The docker image tag to use for tagging pushed images.
	//
	// This field is
	// required if `imageParameterName` is ommited (otherwise, the app won't be
	// able to find the image).
	// Default: - this parameter is REQUIRED after 1.21.0
	//
	ImageTag *string `field:"optional" json:"imageTag" yaml:"imageTag"`
	// Networking mode for the RUN commands during build.
	// Default: - no networking mode specified.
	//
	NetworkMode *string `field:"optional" json:"networkMode" yaml:"networkMode"`
	// Outputs to pass to the `docker build` command.
	// See: https://docs.docker.com/engine/reference/commandline/build/#custom-build-outputs
	//
	// Default: - no outputs are passed to the build command (default outputs are used).
	//
	Outputs *[]*string `field:"optional" json:"outputs" yaml:"outputs"`
	// Platform to build for.
	//
	// _Requires Docker Buildx_.
	// Default: - current machine platform.
	//
	Platform *string `field:"optional" json:"platform" yaml:"platform"`
	// ECR repository name, if omitted a default name based on the asset's ID is used instead.
	//
	// Specify this property if you need to statically address the
	// image, e.g. from a Kubernetes Pod. Note, this is only the repository name,
	// without the registry and the tag parts.
	// Default: - this parameter is REQUIRED after 1.21.0
	//
	RepositoryName *string `field:"optional" json:"repositoryName" yaml:"repositoryName"`
	// Docker target to build to.
	// Default: no build target.
	//
	Target *string `field:"optional" json:"target" yaml:"target"`
}

Metadata Entry spec for container images.

Example:

entry := map[string]*string{
	"packaging": jsii.String("container-image"),
	"repositoryName": jsii.String("repository-name"),
	"imageTag": jsii.String("tag"),
}

type ContextProvider

type ContextProvider string

Identifier for the context provider.

const (
	// AMI provider.
	ContextProvider_AMI_PROVIDER ContextProvider = "AMI_PROVIDER"
	// AZ provider.
	ContextProvider_AVAILABILITY_ZONE_PROVIDER ContextProvider = "AVAILABILITY_ZONE_PROVIDER"
	// Route53 Hosted Zone provider.
	ContextProvider_HOSTED_ZONE_PROVIDER ContextProvider = "HOSTED_ZONE_PROVIDER"
	// SSM Parameter Provider.
	ContextProvider_SSM_PARAMETER_PROVIDER ContextProvider = "SSM_PARAMETER_PROVIDER"
	// VPC Provider.
	ContextProvider_VPC_PROVIDER ContextProvider = "VPC_PROVIDER"
	// VPC Endpoint Service AZ Provider.
	ContextProvider_ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER ContextProvider = "ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER"
	// Load balancer provider.
	ContextProvider_LOAD_BALANCER_PROVIDER ContextProvider = "LOAD_BALANCER_PROVIDER"
	// Load balancer listener provider.
	ContextProvider_LOAD_BALANCER_LISTENER_PROVIDER ContextProvider = "LOAD_BALANCER_LISTENER_PROVIDER"
	// Security group provider.
	ContextProvider_SECURITY_GROUP_PROVIDER ContextProvider = "SECURITY_GROUP_PROVIDER"
	// KMS Key Provider.
	ContextProvider_KEY_PROVIDER ContextProvider = "KEY_PROVIDER"
	// A plugin provider (the actual plugin name will be in the properties).
	ContextProvider_PLUGIN ContextProvider = "PLUGIN"
)

type DefaultCdkOptions added in v2.20.0

type DefaultCdkOptions struct {
	// Deploy all stacks.
	//
	// Requried if `stacks` is not set.
	// Default: - false.
	//
	All *bool `field:"optional" json:"all" yaml:"all"`
	// command-line for executing your app or a cloud assembly directory e.g. "node bin/my-app.js" or "cdk.out".
	// Default: - read from cdk.json
	//
	App *string `field:"optional" json:"app" yaml:"app"`
	// Include "aws:asset:*" CloudFormation metadata for resources that use assets.
	// Default: true.
	//
	AssetMetadata *bool `field:"optional" json:"assetMetadata" yaml:"assetMetadata"`
	// Path to CA certificate to use when validating HTTPS requests.
	// Default: - read from AWS_CA_BUNDLE environment variable.
	//
	CaBundlePath *string `field:"optional" json:"caBundlePath" yaml:"caBundlePath"`
	// Show colors and other style from console output.
	// Default: true.
	//
	Color *bool `field:"optional" json:"color" yaml:"color"`
	// Additional context.
	// Default: - no additional context.
	//
	Context *map[string]*string `field:"optional" json:"context" yaml:"context"`
	// enable emission of additional debugging information, such as creation stack traces of tokens.
	// Default: false.
	//
	Debug *bool `field:"optional" json:"debug" yaml:"debug"`
	// Force trying to fetch EC2 instance credentials.
	// Default: - guess EC2 instance status.
	//
	Ec2Creds *bool `field:"optional" json:"ec2Creds" yaml:"ec2Creds"`
	// Ignores synthesis errors, which will likely produce an invalid output.
	// Default: false.
	//
	IgnoreErrors *bool `field:"optional" json:"ignoreErrors" yaml:"ignoreErrors"`
	// Use JSON output instead of YAML when templates are printed to STDOUT.
	// Default: false.
	//
	Json *bool `field:"optional" json:"json" yaml:"json"`
	// Perform context lookups.
	//
	// Synthesis fails if this is disabled and context lookups need
	// to be performed.
	// Default: true.
	//
	Lookups *bool `field:"optional" json:"lookups" yaml:"lookups"`
	// Show relevant notices.
	// Default: true.
	//
	Notices *bool `field:"optional" json:"notices" yaml:"notices"`
	// Emits the synthesized cloud assembly into a directory.
	// Default: cdk.out
	//
	Output *string `field:"optional" json:"output" yaml:"output"`
	// Include "aws:cdk:path" CloudFormation metadata for each resource.
	// Default: true.
	//
	PathMetadata *bool `field:"optional" json:"pathMetadata" yaml:"pathMetadata"`
	// Use the indicated AWS profile as the default environment.
	// Default: - no profile is used.
	//
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// Use the indicated proxy.
	//
	// Will read from
	// HTTPS_PROXY environment if specified.
	// Default: - no proxy.
	//
	Proxy *string `field:"optional" json:"proxy" yaml:"proxy"`
	// Role to pass to CloudFormation for deployment.
	// Default: - use the bootstrap cfn-exec role.
	//
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
	// List of stacks to deploy.
	//
	// Requried if `all` is not set.
	// Default: - [].
	//
	Stacks *[]*string `field:"optional" json:"stacks" yaml:"stacks"`
	// Copy assets to the output directory.
	//
	// Needed for local debugging the source files with SAM CLI.
	// Default: false.
	//
	Staging *bool `field:"optional" json:"staging" yaml:"staging"`
	// Do not construct stacks with warnings.
	// Default: false.
	//
	Strict *bool `field:"optional" json:"strict" yaml:"strict"`
	// Print trace for stack warnings.
	// Default: false.
	//
	Trace *bool `field:"optional" json:"trace" yaml:"trace"`
	// show debug logs.
	// Default: false.
	//
	Verbose *bool `field:"optional" json:"verbose" yaml:"verbose"`
	// Include "AWS::CDK::Metadata" resource in synthesized templates.
	// Default: true.
	//
	VersionReporting *bool `field:"optional" json:"versionReporting" yaml:"versionReporting"`
}

Default CDK CLI options that apply to all commands.

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"

defaultCdkOptions := &DefaultCdkOptions{
	All: jsii.Boolean(false),
	App: jsii.String("app"),
	AssetMetadata: jsii.Boolean(false),
	CaBundlePath: jsii.String("caBundlePath"),
	Color: jsii.Boolean(false),
	Context: map[string]*string{
		"contextKey": jsii.String("context"),
	},
	Debug: jsii.Boolean(false),
	Ec2Creds: jsii.Boolean(false),
	IgnoreErrors: jsii.Boolean(false),
	Json: jsii.Boolean(false),
	Lookups: jsii.Boolean(false),
	Notices: jsii.Boolean(false),
	Output: jsii.String("output"),
	PathMetadata: jsii.Boolean(false),
	Profile: jsii.String("profile"),
	Proxy: jsii.String("proxy"),
	RoleArn: jsii.String("roleArn"),
	Stacks: []*string{
		jsii.String("stacks"),
	},
	Staging: jsii.Boolean(false),
	Strict: jsii.Boolean(false),
	Trace: jsii.Boolean(false),
	Verbose: jsii.Boolean(false),
	VersionReporting: jsii.Boolean(false),
}

type DeployCommand added in v2.20.0

type DeployCommand struct {
	// Whether or not to run this command as part of the workflow This can be used if you only want to test some of the workflow for example enable `synth` and disable `deploy` & `destroy` in order to limit the test to synthesis.
	// Default: true.
	//
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// This can be used in combination with `expectedError` to validate that a specific message is returned.
	// Default: - do not validate message.
	//
	ExpectedMessage *string `field:"optional" json:"expectedMessage" yaml:"expectedMessage"`
	// If the runner should expect this command to fail.
	// Default: false.
	//
	ExpectError *bool `field:"optional" json:"expectError" yaml:"expectError"`
	// Additional arguments to pass to the command This can be used to test specific CLI functionality.
	// Default: - only default args are used.
	//
	Args *DeployOptions `field:"optional" json:"args" yaml:"args"`
}

Represents a cdk deploy command.

Example:

app := awscdk.NewApp()

stackUnderTest := awscdk.NewStack(app, jsii.String("StackUnderTest"))

stack := awscdk.NewStack(app, jsii.String("stack"))

testCase := awscdkintegtestsalpha.NewIntegTest(app, jsii.String("CustomizedDeploymentWorkflow"), &IntegTestProps{
	TestCases: []stack{
		stackUnderTest,
	},
	DiffAssets: jsii.Boolean(true),
	StackUpdateWorkflow: jsii.Boolean(true),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				RequireApproval: awscdk.RequireApproval_NEVER,
				Json: jsii.Boolean(true),
			},
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				Force: jsii.Boolean(true),
			},
		},
	},
})

type DeployOptions added in v2.20.0

type DeployOptions struct {
	// Deploy all stacks.
	//
	// Requried if `stacks` is not set.
	// Default: - false.
	//
	All *bool `field:"optional" json:"all" yaml:"all"`
	// command-line for executing your app or a cloud assembly directory e.g. "node bin/my-app.js" or "cdk.out".
	// Default: - read from cdk.json
	//
	App *string `field:"optional" json:"app" yaml:"app"`
	// Include "aws:asset:*" CloudFormation metadata for resources that use assets.
	// Default: true.
	//
	AssetMetadata *bool `field:"optional" json:"assetMetadata" yaml:"assetMetadata"`
	// Path to CA certificate to use when validating HTTPS requests.
	// Default: - read from AWS_CA_BUNDLE environment variable.
	//
	CaBundlePath *string `field:"optional" json:"caBundlePath" yaml:"caBundlePath"`
	// Show colors and other style from console output.
	// Default: true.
	//
	Color *bool `field:"optional" json:"color" yaml:"color"`
	// Additional context.
	// Default: - no additional context.
	//
	Context *map[string]*string `field:"optional" json:"context" yaml:"context"`
	// enable emission of additional debugging information, such as creation stack traces of tokens.
	// Default: false.
	//
	Debug *bool `field:"optional" json:"debug" yaml:"debug"`
	// Force trying to fetch EC2 instance credentials.
	// Default: - guess EC2 instance status.
	//
	Ec2Creds *bool `field:"optional" json:"ec2Creds" yaml:"ec2Creds"`
	// Ignores synthesis errors, which will likely produce an invalid output.
	// Default: false.
	//
	IgnoreErrors *bool `field:"optional" json:"ignoreErrors" yaml:"ignoreErrors"`
	// Use JSON output instead of YAML when templates are printed to STDOUT.
	// Default: false.
	//
	Json *bool `field:"optional" json:"json" yaml:"json"`
	// Perform context lookups.
	//
	// Synthesis fails if this is disabled and context lookups need
	// to be performed.
	// Default: true.
	//
	Lookups *bool `field:"optional" json:"lookups" yaml:"lookups"`
	// Show relevant notices.
	// Default: true.
	//
	Notices *bool `field:"optional" json:"notices" yaml:"notices"`
	// Emits the synthesized cloud assembly into a directory.
	// Default: cdk.out
	//
	Output *string `field:"optional" json:"output" yaml:"output"`
	// Include "aws:cdk:path" CloudFormation metadata for each resource.
	// Default: true.
	//
	PathMetadata *bool `field:"optional" json:"pathMetadata" yaml:"pathMetadata"`
	// Use the indicated AWS profile as the default environment.
	// Default: - no profile is used.
	//
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// Use the indicated proxy.
	//
	// Will read from
	// HTTPS_PROXY environment if specified.
	// Default: - no proxy.
	//
	Proxy *string `field:"optional" json:"proxy" yaml:"proxy"`
	// Role to pass to CloudFormation for deployment.
	// Default: - use the bootstrap cfn-exec role.
	//
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
	// List of stacks to deploy.
	//
	// Requried if `all` is not set.
	// Default: - [].
	//
	Stacks *[]*string `field:"optional" json:"stacks" yaml:"stacks"`
	// Copy assets to the output directory.
	//
	// Needed for local debugging the source files with SAM CLI.
	// Default: false.
	//
	Staging *bool `field:"optional" json:"staging" yaml:"staging"`
	// Do not construct stacks with warnings.
	// Default: false.
	//
	Strict *bool `field:"optional" json:"strict" yaml:"strict"`
	// Print trace for stack warnings.
	// Default: false.
	//
	Trace *bool `field:"optional" json:"trace" yaml:"trace"`
	// show debug logs.
	// Default: false.
	//
	Verbose *bool `field:"optional" json:"verbose" yaml:"verbose"`
	// Include "AWS::CDK::Metadata" resource in synthesized templates.
	// Default: true.
	//
	VersionReporting *bool `field:"optional" json:"versionReporting" yaml:"versionReporting"`
	// Optional name to use for the CloudFormation change set.
	//
	// If not provided, a name will be generated automatically.
	// Default: - auto generate a name.
	//
	ChangeSetName *string `field:"optional" json:"changeSetName" yaml:"changeSetName"`
	// Whether we are on a CI system.
	// Default: false.
	//
	Ci *bool `field:"optional" json:"ci" yaml:"ci"`
	// Deploy multiple stacks in parallel.
	// Default: 1.
	//
	Concurrency *float64 `field:"optional" json:"concurrency" yaml:"concurrency"`
	// Only perform action on the given stack.
	// Default: false.
	//
	Exclusively *bool `field:"optional" json:"exclusively" yaml:"exclusively"`
	// Whether to execute the ChangeSet Not providing `execute` parameter will result in execution of ChangeSet.
	// Default: true.
	//
	Execute *bool `field:"optional" json:"execute" yaml:"execute"`
	// Always deploy, even if templates are identical.
	// Default: false.
	//
	Force *bool `field:"optional" json:"force" yaml:"force"`
	// ARNs of SNS topics that CloudFormation will notify with stack related events.
	// Default: - no notifications.
	//
	NotificationArns *[]*string `field:"optional" json:"notificationArns" yaml:"notificationArns"`
	// Path to file where stack outputs will be written after a successful deploy as JSON.
	// Default: - Outputs are not written to any file.
	//
	OutputsFile *string `field:"optional" json:"outputsFile" yaml:"outputsFile"`
	// Additional parameters for CloudFormation at deploy time.
	// Default: {}.
	//
	Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"`
	// What kind of security changes require approval.
	// Default: RequireApproval.Never
	//
	RequireApproval RequireApproval `field:"optional" json:"requireApproval" yaml:"requireApproval"`
	// Reuse the assets with the given asset IDs.
	// Default: - do not reuse assets.
	//
	ReuseAssets *[]*string `field:"optional" json:"reuseAssets" yaml:"reuseAssets"`
	// Rollback failed deployments.
	// Default: true.
	//
	Rollback *bool `field:"optional" json:"rollback" yaml:"rollback"`
	// Name of the toolkit stack to use/deploy.
	// Default: CDKToolkit.
	//
	ToolkitStackName *string `field:"optional" json:"toolkitStackName" yaml:"toolkitStackName"`
	// Use previous values for unspecified parameters.
	//
	// If not set, all parameters must be specified for every deployment.
	// Default: true.
	//
	UsePreviousParameters *bool `field:"optional" json:"usePreviousParameters" yaml:"usePreviousParameters"`
}

Options to use with cdk deploy.

Example:

app := awscdk.NewApp()

stackUnderTest := awscdk.NewStack(app, jsii.String("StackUnderTest"))

stack := awscdk.NewStack(app, jsii.String("stack"))

testCase := awscdkintegtestsalpha.NewIntegTest(app, jsii.String("CustomizedDeploymentWorkflow"), &IntegTestProps{
	TestCases: []stack{
		stackUnderTest,
	},
	DiffAssets: jsii.Boolean(true),
	StackUpdateWorkflow: jsii.Boolean(true),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				RequireApproval: awscdk.RequireApproval_NEVER,
				Json: jsii.Boolean(true),
			},
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				Force: jsii.Boolean(true),
			},
		},
	},
})

type DestroyCommand added in v2.20.0

type DestroyCommand struct {
	// Whether or not to run this command as part of the workflow This can be used if you only want to test some of the workflow for example enable `synth` and disable `deploy` & `destroy` in order to limit the test to synthesis.
	// Default: true.
	//
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// This can be used in combination with `expectedError` to validate that a specific message is returned.
	// Default: - do not validate message.
	//
	ExpectedMessage *string `field:"optional" json:"expectedMessage" yaml:"expectedMessage"`
	// If the runner should expect this command to fail.
	// Default: false.
	//
	ExpectError *bool `field:"optional" json:"expectError" yaml:"expectError"`
	// Additional arguments to pass to the command This can be used to test specific CLI functionality.
	// Default: - only default args are used.
	//
	Args *DestroyOptions `field:"optional" json:"args" yaml:"args"`
}

Represents a cdk destroy command.

Example:

app := awscdk.NewApp()

stackUnderTest := awscdk.NewStack(app, jsii.String("StackUnderTest"))

stack := awscdk.NewStack(app, jsii.String("stack"))

testCase := awscdkintegtestsalpha.NewIntegTest(app, jsii.String("CustomizedDeploymentWorkflow"), &IntegTestProps{
	TestCases: []stack{
		stackUnderTest,
	},
	DiffAssets: jsii.Boolean(true),
	StackUpdateWorkflow: jsii.Boolean(true),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				RequireApproval: awscdk.RequireApproval_NEVER,
				Json: jsii.Boolean(true),
			},
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				Force: jsii.Boolean(true),
			},
		},
	},
})

type DestroyOptions added in v2.20.0

type DestroyOptions struct {
	// Deploy all stacks.
	//
	// Requried if `stacks` is not set.
	// Default: - false.
	//
	All *bool `field:"optional" json:"all" yaml:"all"`
	// command-line for executing your app or a cloud assembly directory e.g. "node bin/my-app.js" or "cdk.out".
	// Default: - read from cdk.json
	//
	App *string `field:"optional" json:"app" yaml:"app"`
	// Include "aws:asset:*" CloudFormation metadata for resources that use assets.
	// Default: true.
	//
	AssetMetadata *bool `field:"optional" json:"assetMetadata" yaml:"assetMetadata"`
	// Path to CA certificate to use when validating HTTPS requests.
	// Default: - read from AWS_CA_BUNDLE environment variable.
	//
	CaBundlePath *string `field:"optional" json:"caBundlePath" yaml:"caBundlePath"`
	// Show colors and other style from console output.
	// Default: true.
	//
	Color *bool `field:"optional" json:"color" yaml:"color"`
	// Additional context.
	// Default: - no additional context.
	//
	Context *map[string]*string `field:"optional" json:"context" yaml:"context"`
	// enable emission of additional debugging information, such as creation stack traces of tokens.
	// Default: false.
	//
	Debug *bool `field:"optional" json:"debug" yaml:"debug"`
	// Force trying to fetch EC2 instance credentials.
	// Default: - guess EC2 instance status.
	//
	Ec2Creds *bool `field:"optional" json:"ec2Creds" yaml:"ec2Creds"`
	// Ignores synthesis errors, which will likely produce an invalid output.
	// Default: false.
	//
	IgnoreErrors *bool `field:"optional" json:"ignoreErrors" yaml:"ignoreErrors"`
	// Use JSON output instead of YAML when templates are printed to STDOUT.
	// Default: false.
	//
	Json *bool `field:"optional" json:"json" yaml:"json"`
	// Perform context lookups.
	//
	// Synthesis fails if this is disabled and context lookups need
	// to be performed.
	// Default: true.
	//
	Lookups *bool `field:"optional" json:"lookups" yaml:"lookups"`
	// Show relevant notices.
	// Default: true.
	//
	Notices *bool `field:"optional" json:"notices" yaml:"notices"`
	// Emits the synthesized cloud assembly into a directory.
	// Default: cdk.out
	//
	Output *string `field:"optional" json:"output" yaml:"output"`
	// Include "aws:cdk:path" CloudFormation metadata for each resource.
	// Default: true.
	//
	PathMetadata *bool `field:"optional" json:"pathMetadata" yaml:"pathMetadata"`
	// Use the indicated AWS profile as the default environment.
	// Default: - no profile is used.
	//
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// Use the indicated proxy.
	//
	// Will read from
	// HTTPS_PROXY environment if specified.
	// Default: - no proxy.
	//
	Proxy *string `field:"optional" json:"proxy" yaml:"proxy"`
	// Role to pass to CloudFormation for deployment.
	// Default: - use the bootstrap cfn-exec role.
	//
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
	// List of stacks to deploy.
	//
	// Requried if `all` is not set.
	// Default: - [].
	//
	Stacks *[]*string `field:"optional" json:"stacks" yaml:"stacks"`
	// Copy assets to the output directory.
	//
	// Needed for local debugging the source files with SAM CLI.
	// Default: false.
	//
	Staging *bool `field:"optional" json:"staging" yaml:"staging"`
	// Do not construct stacks with warnings.
	// Default: false.
	//
	Strict *bool `field:"optional" json:"strict" yaml:"strict"`
	// Print trace for stack warnings.
	// Default: false.
	//
	Trace *bool `field:"optional" json:"trace" yaml:"trace"`
	// show debug logs.
	// Default: false.
	//
	Verbose *bool `field:"optional" json:"verbose" yaml:"verbose"`
	// Include "AWS::CDK::Metadata" resource in synthesized templates.
	// Default: true.
	//
	VersionReporting *bool `field:"optional" json:"versionReporting" yaml:"versionReporting"`
	// Only destroy the given stack.
	// Default: false.
	//
	Exclusively *bool `field:"optional" json:"exclusively" yaml:"exclusively"`
	// Do not ask for permission before destroying stacks.
	// Default: false.
	//
	Force *bool `field:"optional" json:"force" yaml:"force"`
}

Options to use with cdk destroy.

Example:

app := awscdk.NewApp()

stackUnderTest := awscdk.NewStack(app, jsii.String("StackUnderTest"))

stack := awscdk.NewStack(app, jsii.String("stack"))

testCase := awscdkintegtestsalpha.NewIntegTest(app, jsii.String("CustomizedDeploymentWorkflow"), &IntegTestProps{
	TestCases: []stack{
		stackUnderTest,
	},
	DiffAssets: jsii.Boolean(true),
	StackUpdateWorkflow: jsii.Boolean(true),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				RequireApproval: awscdk.RequireApproval_NEVER,
				Json: jsii.Boolean(true),
			},
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				Force: jsii.Boolean(true),
			},
		},
	},
})

type DockerCacheOption added in v2.69.0

type DockerCacheOption struct {
	// The type of cache to use.
	//
	// Refer to https://docs.docker.com/build/cache/backends/ for full list of backends.
	//
	// Example:
	//   "registry"
	//
	// Default: - unspecified.
	//
	Type *string `field:"required" json:"type" yaml:"type"`
	// Any parameters to pass into the docker cache backend configuration.
	//
	// Refer to https://docs.docker.com/build/cache/backends/ for cache backend configuration.
	//
	// Example:
	//   var branch string
	//
	//
	//   params := map[string]interface{}{
	//   	"ref": fmt.Sprintf("12345678.dkr.ecr.us-west-2.amazonaws.com/cache:%v", branch),
	//   	"mode": jsii.String("max"),
	//   }
	//
	// Default: {} No options provided.
	//
	Params *map[string]*string `field:"optional" json:"params" yaml:"params"`
}

Options for configuring the Docker cache backend.

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"

dockerCacheOption := &DockerCacheOption{
	Type: jsii.String("type"),

	// the properties below are optional
	Params: map[string]*string{
		"paramsKey": jsii.String("params"),
	},
}

type DockerImageAsset

type DockerImageAsset struct {
	// Destinations for this file asset.
	Destinations *map[string]*DockerImageDestination `field:"required" json:"destinations" yaml:"destinations"`
	// Source description for file assets.
	Source *DockerImageSource `field:"required" json:"source" yaml:"source"`
}

A file asset.

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"

dockerImageAsset := &DockerImageAsset{
	Destinations: map[string]dockerImageDestination{
		"destinationsKey": &dockerImageDestination{
			"imageTag": jsii.String("imageTag"),
			"repositoryName": jsii.String("repositoryName"),

			// the properties below are optional
			"assumeRoleArn": jsii.String("assumeRoleArn"),
			"assumeRoleExternalId": jsii.String("assumeRoleExternalId"),
			"region": jsii.String("region"),
		},
	},
	Source: &DockerImageSource{
		CacheDisabled: jsii.Boolean(false),
		CacheFrom: []dockerCacheOption{
			&dockerCacheOption{
				Type: jsii.String("type"),

				// the properties below are optional
				Params: map[string]*string{
					"paramsKey": jsii.String("params"),
				},
			},
		},
		CacheTo: &dockerCacheOption{
			Type: jsii.String("type"),

			// the properties below are optional
			Params: map[string]*string{
				"paramsKey": jsii.String("params"),
			},
		},
		Directory: jsii.String("directory"),
		DockerBuildArgs: map[string]*string{
			"dockerBuildArgsKey": jsii.String("dockerBuildArgs"),
		},
		DockerBuildSecrets: map[string]*string{
			"dockerBuildSecretsKey": jsii.String("dockerBuildSecrets"),
		},
		DockerBuildSsh: jsii.String("dockerBuildSsh"),
		DockerBuildTarget: jsii.String("dockerBuildTarget"),
		DockerFile: jsii.String("dockerFile"),
		DockerOutputs: []*string{
			jsii.String("dockerOutputs"),
		},
		Executable: []*string{
			jsii.String("executable"),
		},
		NetworkMode: jsii.String("networkMode"),
		Platform: jsii.String("platform"),
	},
}

type DockerImageDestination

type DockerImageDestination struct {
	// The role that needs to be assumed while publishing this asset.
	// Default: - No role will be assumed.
	//
	AssumeRoleArn *string `field:"optional" json:"assumeRoleArn" yaml:"assumeRoleArn"`
	// The ExternalId that needs to be supplied while assuming this role.
	// Default: - No ExternalId will be supplied.
	//
	AssumeRoleExternalId *string `field:"optional" json:"assumeRoleExternalId" yaml:"assumeRoleExternalId"`
	// The region where this asset will need to be published.
	// Default: - Current region.
	//
	Region *string `field:"optional" json:"region" yaml:"region"`
	// Tag of the image to publish.
	ImageTag *string `field:"required" json:"imageTag" yaml:"imageTag"`
	// Name of the ECR repository to publish to.
	RepositoryName *string `field:"required" json:"repositoryName" yaml:"repositoryName"`
}

Where to publish docker images.

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"

dockerImageDestination := &DockerImageDestination{
	ImageTag: jsii.String("imageTag"),
	RepositoryName: jsii.String("repositoryName"),

	// the properties below are optional
	AssumeRoleArn: jsii.String("assumeRoleArn"),
	AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
	Region: jsii.String("region"),
}

type DockerImageSource

type DockerImageSource struct {
	// Disable the cache and pass `--no-cache` to the `docker build` command.
	// Default: - cache is used.
	//
	CacheDisabled *bool `field:"optional" json:"cacheDisabled" yaml:"cacheDisabled"`
	// Cache from options to pass to the `docker build` command.
	// See: https://docs.docker.com/build/cache/backends/
	//
	// Default: - no cache from options are passed to the build command.
	//
	CacheFrom *[]*DockerCacheOption `field:"optional" json:"cacheFrom" yaml:"cacheFrom"`
	// Cache to options to pass to the `docker build` command.
	// See: https://docs.docker.com/build/cache/backends/
	//
	// Default: - no cache to options are passed to the build command.
	//
	CacheTo *DockerCacheOption `field:"optional" json:"cacheTo" yaml:"cacheTo"`
	// The directory containing the Docker image build instructions.
	//
	// This path is relative to the asset manifest location.
	// Default: - Exactly one of `directory` and `executable` is required.
	//
	Directory *string `field:"optional" json:"directory" yaml:"directory"`
	// Additional build arguments.
	//
	// Only allowed when `directory` is set.
	// Default: - No additional build arguments.
	//
	DockerBuildArgs *map[string]*string `field:"optional" json:"dockerBuildArgs" yaml:"dockerBuildArgs"`
	// Additional build secrets.
	//
	// Only allowed when `directory` is set.
	// Default: - No additional build secrets.
	//
	DockerBuildSecrets *map[string]*string `field:"optional" json:"dockerBuildSecrets" yaml:"dockerBuildSecrets"`
	// SSH agent socket or keys.
	//
	// Requires building with docker buildkit.
	// Default: - No ssh flag is set.
	//
	DockerBuildSsh *string `field:"optional" json:"dockerBuildSsh" yaml:"dockerBuildSsh"`
	// Target build stage in a Dockerfile with multiple build stages.
	//
	// Only allowed when `directory` is set.
	// Default: - The last stage in the Dockerfile.
	//
	DockerBuildTarget *string `field:"optional" json:"dockerBuildTarget" yaml:"dockerBuildTarget"`
	// The name of the file with build instructions.
	//
	// Only allowed when `directory` is set.
	// Default: "Dockerfile".
	//
	DockerFile *string `field:"optional" json:"dockerFile" yaml:"dockerFile"`
	// Outputs.
	// See: https://docs.docker.com/engine/reference/commandline/build/#custom-build-outputs
	//
	// Default: - no outputs are passed to the build command (default outputs are used).
	//
	DockerOutputs *[]*string `field:"optional" json:"dockerOutputs" yaml:"dockerOutputs"`
	// A command-line executable that returns the name of a local Docker image on stdout after being run.
	// Default: - Exactly one of `directory` and `executable` is required.
	//
	Executable *[]*string `field:"optional" json:"executable" yaml:"executable"`
	// Networking mode for the RUN commands during build. _Requires Docker Engine API v1.25+_.
	//
	// Specify this property to build images on a specific networking mode.
	// Default: - no networking mode specified.
	//
	NetworkMode *string `field:"optional" json:"networkMode" yaml:"networkMode"`
	// Platform to build for. _Requires Docker Buildx_.
	//
	// Specify this property to build images on a specific platform/architecture.
	// Default: - current machine platform.
	//
	Platform *string `field:"optional" json:"platform" yaml:"platform"`
}

Properties for how to produce a Docker image from a source.

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"

dockerImageSource := &DockerImageSource{
	CacheDisabled: jsii.Boolean(false),
	CacheFrom: []dockerCacheOption{
		&dockerCacheOption{
			Type: jsii.String("type"),

			// the properties below are optional
			Params: map[string]*string{
				"paramsKey": jsii.String("params"),
			},
		},
	},
	CacheTo: &dockerCacheOption{
		Type: jsii.String("type"),

		// the properties below are optional
		Params: map[string]*string{
			"paramsKey": jsii.String("params"),
		},
	},
	Directory: jsii.String("directory"),
	DockerBuildArgs: map[string]*string{
		"dockerBuildArgsKey": jsii.String("dockerBuildArgs"),
	},
	DockerBuildSecrets: map[string]*string{
		"dockerBuildSecretsKey": jsii.String("dockerBuildSecrets"),
	},
	DockerBuildSsh: jsii.String("dockerBuildSsh"),
	DockerBuildTarget: jsii.String("dockerBuildTarget"),
	DockerFile: jsii.String("dockerFile"),
	DockerOutputs: []*string{
		jsii.String("dockerOutputs"),
	},
	Executable: []*string{
		jsii.String("executable"),
	},
	NetworkMode: jsii.String("networkMode"),
	Platform: jsii.String("platform"),
}

type EndpointServiceAvailabilityZonesContextQuery

type EndpointServiceAvailabilityZonesContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// Query service name.
	ServiceName *string `field:"required" json:"serviceName" yaml:"serviceName"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
}

Query to endpoint service context provider.

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"

endpointServiceAvailabilityZonesContextQuery := &EndpointServiceAvailabilityZonesContextQuery{
	Account: jsii.String("account"),
	Region: jsii.String("region"),
	ServiceName: jsii.String("serviceName"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
}

type FileAsset

type FileAsset struct {
	// Destinations for this file asset.
	Destinations *map[string]*FileDestination `field:"required" json:"destinations" yaml:"destinations"`
	// Source description for file assets.
	Source *FileSource `field:"required" json:"source" yaml:"source"`
}

A file asset.

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"

fileAsset := &FileAsset{
	Destinations: map[string]fileDestination{
		"destinationsKey": &fileDestination{
			"bucketName": jsii.String("bucketName"),
			"objectKey": jsii.String("objectKey"),

			// the properties below are optional
			"assumeRoleArn": jsii.String("assumeRoleArn"),
			"assumeRoleExternalId": jsii.String("assumeRoleExternalId"),
			"region": jsii.String("region"),
		},
	},
	Source: &FileSource{
		Executable: []*string{
			jsii.String("executable"),
		},
		Packaging: awscdk.Cloud_assembly_schema.FileAssetPackaging_FILE,
		Path: jsii.String("path"),
	},
}

type FileAssetMetadataEntry

type FileAssetMetadataEntry struct {
	// The name of the parameter where the hash of the bundled asset should be passed in.
	ArtifactHashParameter *string `field:"required" json:"artifactHashParameter" yaml:"artifactHashParameter"`
	// Logical identifier for the asset.
	Id *string `field:"required" json:"id" yaml:"id"`
	// Requested packaging style.
	Packaging *string `field:"required" json:"packaging" yaml:"packaging"`
	// Path on disk to the asset.
	Path *string `field:"required" json:"path" yaml:"path"`
	// Name of parameter where S3 bucket should be passed in.
	S3BucketParameter *string `field:"required" json:"s3BucketParameter" yaml:"s3BucketParameter"`
	// Name of parameter where S3 key should be passed in.
	S3KeyParameter *string `field:"required" json:"s3KeyParameter" yaml:"s3KeyParameter"`
	// The hash of the asset source.
	SourceHash *string `field:"required" json:"sourceHash" yaml:"sourceHash"`
}

Metadata Entry spec for files.

Example:

entry := map[string]*string{
	"packaging": jsii.String("file"),
	"s3BucketParameter": jsii.String("bucket-parameter"),
	"s3KeyParamenter": jsii.String("key-parameter"),
	"artifactHashParameter": jsii.String("hash-parameter"),
}

type FileAssetPackaging

type FileAssetPackaging string

Packaging strategy for file assets.

const (
	// Upload the given path as a file.
	FileAssetPackaging_FILE FileAssetPackaging = "FILE"
	// The given path is a directory, zip it and upload.
	FileAssetPackaging_ZIP_DIRECTORY FileAssetPackaging = "ZIP_DIRECTORY"
)

type FileDestination

type FileDestination struct {
	// The role that needs to be assumed while publishing this asset.
	// Default: - No role will be assumed.
	//
	AssumeRoleArn *string `field:"optional" json:"assumeRoleArn" yaml:"assumeRoleArn"`
	// The ExternalId that needs to be supplied while assuming this role.
	// Default: - No ExternalId will be supplied.
	//
	AssumeRoleExternalId *string `field:"optional" json:"assumeRoleExternalId" yaml:"assumeRoleExternalId"`
	// The region where this asset will need to be published.
	// Default: - Current region.
	//
	Region *string `field:"optional" json:"region" yaml:"region"`
	// The name of the bucket.
	BucketName *string `field:"required" json:"bucketName" yaml:"bucketName"`
	// The destination object key.
	ObjectKey *string `field:"required" json:"objectKey" yaml:"objectKey"`
}

Where in S3 a file asset needs to be published.

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"

fileDestination := &FileDestination{
	BucketName: jsii.String("bucketName"),
	ObjectKey: jsii.String("objectKey"),

	// the properties below are optional
	AssumeRoleArn: jsii.String("assumeRoleArn"),
	AssumeRoleExternalId: jsii.String("assumeRoleExternalId"),
	Region: jsii.String("region"),
}

type FileSource

type FileSource struct {
	// External command which will produce the file asset to upload.
	// Default: - Exactly one of `executable` and `path` is required.
	//
	Executable *[]*string `field:"optional" json:"executable" yaml:"executable"`
	// Packaging method.
	//
	// Only allowed when `path` is specified.
	// Default: FILE.
	//
	Packaging FileAssetPackaging `field:"optional" json:"packaging" yaml:"packaging"`
	// The filesystem object to upload.
	//
	// This path is relative to the asset manifest location.
	// Default: - Exactly one of `executable` and `path` is required.
	//
	Path *string `field:"optional" json:"path" yaml:"path"`
}

Describe the source of a file asset.

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"

fileSource := &FileSource{
	Executable: []*string{
		jsii.String("executable"),
	},
	Packaging: awscdk.Cloud_assembly_schema.FileAssetPackaging_FILE,
	Path: jsii.String("path"),
}

type Hooks added in v2.20.0

type Hooks struct {
	// Commands to run prior after deploying the cdk stacks in the integration test.
	// Default: - no commands.
	//
	PostDeploy *[]*string `field:"optional" json:"postDeploy" yaml:"postDeploy"`
	// Commands to run after destroying the cdk stacks in the integration test.
	// Default: - no commands.
	//
	PostDestroy *[]*string `field:"optional" json:"postDestroy" yaml:"postDestroy"`
	// Commands to run prior to deploying the cdk stacks in the integration test.
	// Default: - no commands.
	//
	PreDeploy *[]*string `field:"optional" json:"preDeploy" yaml:"preDeploy"`
	// Commands to run prior to destroying the cdk stacks in the integration test.
	// Default: - no commands.
	//
	PreDestroy *[]*string `field:"optional" json:"preDestroy" yaml:"preDestroy"`
}

Commands to run at predefined points during the integration test workflow.

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"

hooks := &Hooks{
	PostDeploy: []*string{
		jsii.String("postDeploy"),
	},
	PostDestroy: []*string{
		jsii.String("postDestroy"),
	},
	PreDeploy: []*string{
		jsii.String("preDeploy"),
	},
	PreDestroy: []*string{
		jsii.String("preDestroy"),
	},
}

type HostedZoneContextQuery

type HostedZoneContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// The domain name e.g. example.com to lookup.
	DomainName *string `field:"required" json:"domainName" yaml:"domainName"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
	// True if the zone you want to find is a private hosted zone.
	// Default: false.
	//
	PrivateZone *bool `field:"optional" json:"privateZone" yaml:"privateZone"`
	// The VPC ID to that the private zone must be associated with.
	//
	// If you provide VPC ID and privateZone is false, this will return no results
	// and raise an error.
	// Default: - Required if privateZone=true.
	//
	VpcId *string `field:"optional" json:"vpcId" yaml:"vpcId"`
}

Query to hosted zone context provider.

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"

hostedZoneContextQuery := &HostedZoneContextQuery{
	Account: jsii.String("account"),
	DomainName: jsii.String("domainName"),
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
	PrivateZone: jsii.Boolean(false),
	VpcId: jsii.String("vpcId"),
}

type IntegManifest added in v2.20.0

type IntegManifest struct {
	// test cases.
	TestCases *map[string]*TestCase `field:"required" json:"testCases" yaml:"testCases"`
	// Version of the manifest.
	Version *string `field:"required" json:"version" yaml:"version"`
	// Enable lookups for this test.
	//
	// If lookups are enabled
	// then `stackUpdateWorkflow` must be set to false.
	// Lookups should only be enabled when you are explicitely testing
	// lookups.
	// Default: false.
	//
	EnableLookups *bool `field:"optional" json:"enableLookups" yaml:"enableLookups"`
	// Additional context to use when performing a synth.
	//
	// Any context provided here will override
	// any default context.
	// Default: - no additional context.
	//
	SynthContext *map[string]*string `field:"optional" json:"synthContext" yaml:"synthContext"`
}

Definitions for the integration testing manifest.

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"

integManifest := &IntegManifest{
	TestCases: map[string]testCase{
		"testCasesKey": &testCase{
			"stacks": []*string{
				jsii.String("stacks"),
			},

			// the properties below are optional
			"allowDestroy": []*string{
				jsii.String("allowDestroy"),
			},
			"assertionStack": jsii.String("assertionStack"),
			"assertionStackName": jsii.String("assertionStackName"),
			"cdkCommandOptions": &CdkCommands{
				"deploy": &DeployCommand{
					"args": &DeployOptions{
						"all": jsii.Boolean(false),
						"app": jsii.String("app"),
						"assetMetadata": jsii.Boolean(false),
						"caBundlePath": jsii.String("caBundlePath"),
						"changeSetName": jsii.String("changeSetName"),
						"ci": jsii.Boolean(false),
						"color": jsii.Boolean(false),
						"concurrency": jsii.Number(123),
						"context": map[string]*string{
							"contextKey": jsii.String("context"),
						},
						"debug": jsii.Boolean(false),
						"ec2Creds": jsii.Boolean(false),
						"exclusively": jsii.Boolean(false),
						"execute": jsii.Boolean(false),
						"force": jsii.Boolean(false),
						"ignoreErrors": jsii.Boolean(false),
						"json": jsii.Boolean(false),
						"lookups": jsii.Boolean(false),
						"notices": jsii.Boolean(false),
						"notificationArns": []*string{
							jsii.String("notificationArns"),
						},
						"output": jsii.String("output"),
						"outputsFile": jsii.String("outputsFile"),
						"parameters": map[string]*string{
							"parametersKey": jsii.String("parameters"),
						},
						"pathMetadata": jsii.Boolean(false),
						"profile": jsii.String("profile"),
						"proxy": jsii.String("proxy"),
						"requireApproval": awscdk.cloud_assembly_schema.RequireApproval_NEVER,
						"reuseAssets": []*string{
							jsii.String("reuseAssets"),
						},
						"roleArn": jsii.String("roleArn"),
						"rollback": jsii.Boolean(false),
						"stacks": []*string{
							jsii.String("stacks"),
						},
						"staging": jsii.Boolean(false),
						"strict": jsii.Boolean(false),
						"toolkitStackName": jsii.String("toolkitStackName"),
						"trace": jsii.Boolean(false),
						"usePreviousParameters": jsii.Boolean(false),
						"verbose": jsii.Boolean(false),
						"versionReporting": jsii.Boolean(false),
					},
					"enabled": jsii.Boolean(false),
					"expectedMessage": jsii.String("expectedMessage"),
					"expectError": jsii.Boolean(false),
				},
				"destroy": &DestroyCommand{
					"args": &DestroyOptions{
						"all": jsii.Boolean(false),
						"app": jsii.String("app"),
						"assetMetadata": jsii.Boolean(false),
						"caBundlePath": jsii.String("caBundlePath"),
						"color": jsii.Boolean(false),
						"context": map[string]*string{
							"contextKey": jsii.String("context"),
						},
						"debug": jsii.Boolean(false),
						"ec2Creds": jsii.Boolean(false),
						"exclusively": jsii.Boolean(false),
						"force": jsii.Boolean(false),
						"ignoreErrors": jsii.Boolean(false),
						"json": jsii.Boolean(false),
						"lookups": jsii.Boolean(false),
						"notices": jsii.Boolean(false),
						"output": jsii.String("output"),
						"pathMetadata": jsii.Boolean(false),
						"profile": jsii.String("profile"),
						"proxy": jsii.String("proxy"),
						"roleArn": jsii.String("roleArn"),
						"stacks": []*string{
							jsii.String("stacks"),
						},
						"staging": jsii.Boolean(false),
						"strict": jsii.Boolean(false),
						"trace": jsii.Boolean(false),
						"verbose": jsii.Boolean(false),
						"versionReporting": jsii.Boolean(false),
					},
					"enabled": jsii.Boolean(false),
					"expectedMessage": jsii.String("expectedMessage"),
					"expectError": jsii.Boolean(false),
				},
			},
			"diffAssets": jsii.Boolean(false),
			"hooks": &Hooks{
				"postDeploy": []*string{
					jsii.String("postDeploy"),
				},
				"postDestroy": []*string{
					jsii.String("postDestroy"),
				},
				"preDeploy": []*string{
					jsii.String("preDeploy"),
				},
				"preDestroy": []*string{
					jsii.String("preDestroy"),
				},
			},
			"regions": []*string{
				jsii.String("regions"),
			},
			"stackUpdateWorkflow": jsii.Boolean(false),
		},
	},
	Version: jsii.String("version"),

	// the properties below are optional
	EnableLookups: jsii.Boolean(false),
	SynthContext: map[string]*string{
		"synthContextKey": jsii.String("synthContext"),
	},
}

func Manifest_LoadIntegManifest added in v2.20.0

func Manifest_LoadIntegManifest(filePath *string) *IntegManifest

Load and validates the integ manifest from file.

type KeyContextQuery

type KeyContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Alias name used to search the Key.
	AliasName *string `field:"required" json:"aliasName" yaml:"aliasName"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
}

Query input for looking up a KMS Key.

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"

keyContextQuery := &KeyContextQuery{
	Account: jsii.String("account"),
	AliasName: jsii.String("aliasName"),
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
}

type LoadBalancerContextQuery

type LoadBalancerContextQuery struct {
	// Filter load balancers by their type.
	LoadBalancerType LoadBalancerType `field:"required" json:"loadBalancerType" yaml:"loadBalancerType"`
	// Find by load balancer's ARN.
	// Default: - does not search by load balancer arn.
	//
	LoadBalancerArn *string `field:"optional" json:"loadBalancerArn" yaml:"loadBalancerArn"`
	// Match load balancer tags.
	// Default: - does not match load balancers by tags.
	//
	LoadBalancerTags *[]*Tag `field:"optional" json:"loadBalancerTags" yaml:"loadBalancerTags"`
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
}

Query input for looking up a load balancer.

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"

loadBalancerContextQuery := &LoadBalancerContextQuery{
	Account: jsii.String("account"),
	LoadBalancerType: awscdk.Cloud_assembly_schema.LoadBalancerType_NETWORK,
	Region: jsii.String("region"),

	// the properties below are optional
	LoadBalancerArn: jsii.String("loadBalancerArn"),
	LoadBalancerTags: []tag{
		&tag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
	LookupRoleArn: jsii.String("lookupRoleArn"),
}

type LoadBalancerFilter

type LoadBalancerFilter struct {
	// Filter load balancers by their type.
	LoadBalancerType LoadBalancerType `field:"required" json:"loadBalancerType" yaml:"loadBalancerType"`
	// Find by load balancer's ARN.
	// Default: - does not search by load balancer arn.
	//
	LoadBalancerArn *string `field:"optional" json:"loadBalancerArn" yaml:"loadBalancerArn"`
	// Match load balancer tags.
	// Default: - does not match load balancers by tags.
	//
	LoadBalancerTags *[]*Tag `field:"optional" json:"loadBalancerTags" yaml:"loadBalancerTags"`
}

Filters for selecting load balancers.

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"

loadBalancerFilter := &LoadBalancerFilter{
	LoadBalancerType: awscdk.Cloud_assembly_schema.LoadBalancerType_NETWORK,

	// the properties below are optional
	LoadBalancerArn: jsii.String("loadBalancerArn"),
	LoadBalancerTags: []tag{
		&tag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
}

type LoadBalancerListenerContextQuery

type LoadBalancerListenerContextQuery struct {
	// Filter load balancers by their type.
	LoadBalancerType LoadBalancerType `field:"required" json:"loadBalancerType" yaml:"loadBalancerType"`
	// Find by load balancer's ARN.
	// Default: - does not search by load balancer arn.
	//
	LoadBalancerArn *string `field:"optional" json:"loadBalancerArn" yaml:"loadBalancerArn"`
	// Match load balancer tags.
	// Default: - does not match load balancers by tags.
	//
	LoadBalancerTags *[]*Tag `field:"optional" json:"loadBalancerTags" yaml:"loadBalancerTags"`
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// Find by listener's arn.
	// Default: - does not find by listener arn.
	//
	ListenerArn *string `field:"optional" json:"listenerArn" yaml:"listenerArn"`
	// Filter listeners by listener port.
	// Default: - does not filter by a listener port.
	//
	ListenerPort *float64 `field:"optional" json:"listenerPort" yaml:"listenerPort"`
	// Filter by listener protocol.
	// Default: - does not filter by listener protocol.
	//
	ListenerProtocol LoadBalancerListenerProtocol `field:"optional" json:"listenerProtocol" yaml:"listenerProtocol"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
}

Query input for looking up a load balancer listener.

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"

loadBalancerListenerContextQuery := &LoadBalancerListenerContextQuery{
	Account: jsii.String("account"),
	LoadBalancerType: awscdk.Cloud_assembly_schema.LoadBalancerType_NETWORK,
	Region: jsii.String("region"),

	// the properties below are optional
	ListenerArn: jsii.String("listenerArn"),
	ListenerPort: jsii.Number(123),
	ListenerProtocol: awscdk.*Cloud_assembly_schema.LoadBalancerListenerProtocol_HTTP,
	LoadBalancerArn: jsii.String("loadBalancerArn"),
	LoadBalancerTags: []tag{
		&tag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
	LookupRoleArn: jsii.String("lookupRoleArn"),
}

type LoadBalancerListenerProtocol

type LoadBalancerListenerProtocol string

The protocol for connections from clients to the load balancer.

const (
	// HTTP protocol.
	LoadBalancerListenerProtocol_HTTP LoadBalancerListenerProtocol = "HTTP"
	// HTTPS protocol.
	LoadBalancerListenerProtocol_HTTPS LoadBalancerListenerProtocol = "HTTPS"
	// TCP protocol.
	LoadBalancerListenerProtocol_TCP LoadBalancerListenerProtocol = "TCP"
	// TLS protocol.
	LoadBalancerListenerProtocol_TLS LoadBalancerListenerProtocol = "TLS"
	// UDP protocol.
	LoadBalancerListenerProtocol_UDP LoadBalancerListenerProtocol = "UDP"
	// TCP and UDP protocol.
	LoadBalancerListenerProtocol_TCP_UDP LoadBalancerListenerProtocol = "TCP_UDP"
)

type LoadBalancerType

type LoadBalancerType string

Type of load balancer.

const (
	// Network load balancer.
	LoadBalancerType_NETWORK LoadBalancerType = "NETWORK"
	// Application load balancer.
	LoadBalancerType_APPLICATION LoadBalancerType = "APPLICATION"
)

type LoadManifestOptions added in v2.17.0

type LoadManifestOptions struct {
	// Skip enum checks.
	//
	// This means you may read enum values you don't know about yet. Make sure to always
	// check the values of enums you encounter in the manifest.
	// Default: false.
	//
	SkipEnumCheck *bool `field:"optional" json:"skipEnumCheck" yaml:"skipEnumCheck"`
	// Skip the version check.
	//
	// This means you may read a newer cloud assembly than the CX API is designed
	// to support, and your application may not be aware of all features that in use
	// in the Cloud Assembly.
	// Default: false.
	//
	SkipVersionCheck *bool `field:"optional" json:"skipVersionCheck" yaml:"skipVersionCheck"`
	// Topologically sort all artifacts.
	//
	// This parameter is only respected by the constructor of `CloudAssembly`. The
	// property lives here for backwards compatibility reasons.
	// Default: true.
	//
	TopoSort *bool `field:"optional" json:"topoSort" yaml:"topoSort"`
}

Options for the loadManifest operation.

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"

loadManifestOptions := &LoadManifestOptions{
	SkipEnumCheck: jsii.Boolean(false),
	SkipVersionCheck: jsii.Boolean(false),
	TopoSort: jsii.Boolean(false),
}

type Manifest

type Manifest interface {
}

Protocol utility class.

type MetadataEntry

type MetadataEntry struct {
	// The type of the metadata entry.
	Type *string `field:"required" json:"type" yaml:"type"`
	// The data.
	// Default: - no data.
	//
	Data interface{} `field:"optional" json:"data" yaml:"data"`
	// A stack trace for when the entry was created.
	// Default: - no trace.
	//
	Trace *[]*string `field:"optional" json:"trace" yaml:"trace"`
}

A metadata entry in a cloud assembly artifact.

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"

metadataEntry := &MetadataEntry{
	Type: jsii.String("type"),

	// the properties below are optional
	Data: jsii.String("data"),
	Trace: []*string{
		jsii.String("trace"),
	},
}

type MissingContext

type MissingContext struct {
	// The missing context key.
	Key *string `field:"required" json:"key" yaml:"key"`
	// A set of provider-specific options.
	Props interface{} `field:"required" json:"props" yaml:"props"`
	// The provider from which we expect this context key to be obtained.
	Provider ContextProvider `field:"required" json:"provider" yaml:"provider"`
}

Represents a missing piece of context.

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"

missingContext := &MissingContext{
	Key: jsii.String("key"),
	Props: &AmiContextQuery{
		Account: jsii.String("account"),
		Filters: map[string][]*string{
			"filtersKey": []*string{
				jsii.String("filters"),
			},
		},
		Region: jsii.String("region"),

		// the properties below are optional
		LookupRoleArn: jsii.String("lookupRoleArn"),
		Owners: []interface{}{
			jsii.String("owners"),
		},
	},
	Provider: awscdk.Cloud_assembly_schema.ContextProvider_AMI_PROVIDER,
}

type NestedCloudAssemblyProperties

type NestedCloudAssemblyProperties struct {
	// Relative path to the nested cloud assembly.
	DirectoryName *string `field:"required" json:"directoryName" yaml:"directoryName"`
	// Display name for the cloud assembly.
	// Default: - The artifact ID.
	//
	DisplayName *string `field:"optional" json:"displayName" yaml:"displayName"`
}

Artifact properties for nested cloud assemblies.

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"

nestedCloudAssemblyProperties := &NestedCloudAssemblyProperties{
	DirectoryName: jsii.String("directoryName"),

	// the properties below are optional
	DisplayName: jsii.String("displayName"),
}

type PluginContextQuery added in v2.11.0

type PluginContextQuery struct {
	// The name of the plugin.
	PluginName *string `field:"required" json:"pluginName" yaml:"pluginName"`
}

Query input for plugins.

This alternate branch is necessary because it needs to be able to escape all type checking we do on on the cloud assembly -- we cannot know the properties that will be used a priori.

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"

pluginContextQuery := &PluginContextQuery{
	PluginName: jsii.String("pluginName"),
}

type RequireApproval added in v2.20.0

type RequireApproval string

In what scenarios should the CLI ask for approval.

Example:

app := awscdk.NewApp()

stackUnderTest := awscdk.NewStack(app, jsii.String("StackUnderTest"))

stack := awscdk.NewStack(app, jsii.String("stack"))

testCase := awscdkintegtestsalpha.NewIntegTest(app, jsii.String("CustomizedDeploymentWorkflow"), &IntegTestProps{
	TestCases: []stack{
		stackUnderTest,
	},
	DiffAssets: jsii.Boolean(true),
	StackUpdateWorkflow: jsii.Boolean(true),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				RequireApproval: awscdk.RequireApproval_NEVER,
				Json: jsii.Boolean(true),
			},
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				Force: jsii.Boolean(true),
			},
		},
	},
})
const (
	// Never ask for approval.
	RequireApproval_NEVER RequireApproval = "NEVER"
	// Prompt for approval for any type  of change to the stack.
	RequireApproval_ANYCHANGE RequireApproval = "ANYCHANGE"
	// Only prompt for approval if there are security related changes.
	RequireApproval_BROADENING RequireApproval = "BROADENING"
)

type RuntimeInfo

type RuntimeInfo struct {
	// The list of libraries loaded in the application, associated with their versions.
	Libraries *map[string]*string `field:"required" json:"libraries" yaml:"libraries"`
}

Information about the application's runtime components.

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"

runtimeInfo := &RuntimeInfo{
	Libraries: map[string]*string{
		"librariesKey": jsii.String("libraries"),
	},
}

type SSMParameterContextQuery

type SSMParameterContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Parameter name to query.
	ParameterName *string `field:"required" json:"parameterName" yaml:"parameterName"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
}

Query to SSM Parameter Context Provider.

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"

sSMParameterContextQuery := &SSMParameterContextQuery{
	Account: jsii.String("account"),
	ParameterName: jsii.String("parameterName"),
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
}

type SecurityGroupContextQuery

type SecurityGroupContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
	// Security group id.
	// Default: - None.
	//
	SecurityGroupId *string `field:"optional" json:"securityGroupId" yaml:"securityGroupId"`
	// Security group name.
	// Default: - None.
	//
	SecurityGroupName *string `field:"optional" json:"securityGroupName" yaml:"securityGroupName"`
	// VPC ID.
	// Default: - None.
	//
	VpcId *string `field:"optional" json:"vpcId" yaml:"vpcId"`
}

Query input for looking up a security group.

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"

securityGroupContextQuery := &SecurityGroupContextQuery{
	Account: jsii.String("account"),
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
	SecurityGroupId: jsii.String("securityGroupId"),
	SecurityGroupName: jsii.String("securityGroupName"),
	VpcId: jsii.String("vpcId"),
}

type Tag

type Tag struct {
	// Tag key.
	//
	// (In the actual file on disk this will be cased as "Key", and the structure is
	// patched to match this structure upon loading:
	// https://github.com/aws/aws-cdk/blob/4aadaa779b48f35838cccd4e25107b2338f05547/packages/%40aws-cdk/cloud-assembly-schema/lib/manifest.ts#L137)
	Key *string `field:"required" json:"key" yaml:"key"`
	// Tag value.
	//
	// (In the actual file on disk this will be cased as "Value", and the structure is
	// patched to match this structure upon loading:
	// https://github.com/aws/aws-cdk/blob/4aadaa779b48f35838cccd4e25107b2338f05547/packages/%40aws-cdk/cloud-assembly-schema/lib/manifest.ts#L137)
	Value *string `field:"required" json:"value" yaml:"value"`
}

Metadata Entry spec for stack tag.

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"

tag := &Tag{
	Key: jsii.String("key"),
	Value: jsii.String("value"),
}

type TestCase added in v2.20.0

type TestCase struct {
	// List of CloudFormation resource types in this stack that can be destroyed as part of an update without failing the test.
	//
	// This list should only include resources that for this specific
	// integration test we are sure will not cause errors or an outage if
	// destroyed. For example, maybe we know that a new resource will be created
	// first before the old resource is destroyed which prevents any outage.
	//
	// e.g. ['AWS::IAM::Role']
	// Default: - do not allow destruction of any resources on update.
	//
	AllowDestroy *[]*string `field:"optional" json:"allowDestroy" yaml:"allowDestroy"`
	// Additional options to use for each CDK command.
	// Default: - runner default options.
	//
	CdkCommandOptions *CdkCommands `field:"optional" json:"cdkCommandOptions" yaml:"cdkCommandOptions"`
	// Whether or not to include asset hashes in the diff Asset hashes can introduces a lot of unneccessary noise into tests, but there are some cases where asset hashes _should_ be included.
	//
	// For example
	// any tests involving custom resources or bundling.
	// Default: false.
	//
	DiffAssets *bool `field:"optional" json:"diffAssets" yaml:"diffAssets"`
	// Additional commands to run at predefined points in the test workflow.
	//
	// e.g. { postDeploy: ['yarn', 'test'] }
	// Default: - no hooks.
	//
	Hooks *Hooks `field:"optional" json:"hooks" yaml:"hooks"`
	// Limit deployment to these regions.
	// Default: - can run in any region.
	//
	Regions *[]*string `field:"optional" json:"regions" yaml:"regions"`
	// Run update workflow on this test case This should only be set to false to test scenarios that are not possible to test as part of the update workflow.
	// Default: true.
	//
	StackUpdateWorkflow *bool `field:"optional" json:"stackUpdateWorkflow" yaml:"stackUpdateWorkflow"`
	// Stacks that should be tested as part of this test case The stackNames will be passed as args to the cdk commands so dependent stacks will be automatically deployed unless `exclusively` is passed.
	Stacks *[]*string `field:"required" json:"stacks" yaml:"stacks"`
	// The node id of the stack that contains assertions.
	//
	// This is the value that can be used to deploy the stack with the CDK CLI.
	// Default: - no assertion stack.
	//
	AssertionStack *string `field:"optional" json:"assertionStack" yaml:"assertionStack"`
	// The name of the stack that contains assertions.
	// Default: - no assertion stack.
	//
	AssertionStackName *string `field:"optional" json:"assertionStackName" yaml:"assertionStackName"`
}

Represents an integration test case.

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"

testCase := &TestCase{
	Stacks: []*string{
		jsii.String("stacks"),
	},

	// the properties below are optional
	AllowDestroy: []*string{
		jsii.String("allowDestroy"),
	},
	AssertionStack: jsii.String("assertionStack"),
	AssertionStackName: jsii.String("assertionStackName"),
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				All: jsii.Boolean(false),
				App: jsii.String("app"),
				AssetMetadata: jsii.Boolean(false),
				CaBundlePath: jsii.String("caBundlePath"),
				ChangeSetName: jsii.String("changeSetName"),
				Ci: jsii.Boolean(false),
				Color: jsii.Boolean(false),
				Concurrency: jsii.Number(123),
				Context: map[string]*string{
					"contextKey": jsii.String("context"),
				},
				Debug: jsii.Boolean(false),
				Ec2Creds: jsii.Boolean(false),
				Exclusively: jsii.Boolean(false),
				Execute: jsii.Boolean(false),
				Force: jsii.Boolean(false),
				IgnoreErrors: jsii.Boolean(false),
				Json: jsii.Boolean(false),
				Lookups: jsii.Boolean(false),
				Notices: jsii.Boolean(false),
				NotificationArns: []*string{
					jsii.String("notificationArns"),
				},
				Output: jsii.String("output"),
				OutputsFile: jsii.String("outputsFile"),
				Parameters: map[string]*string{
					"parametersKey": jsii.String("parameters"),
				},
				PathMetadata: jsii.Boolean(false),
				Profile: jsii.String("profile"),
				Proxy: jsii.String("proxy"),
				RequireApproval: awscdk.Cloud_assembly_schema.RequireApproval_NEVER,
				ReuseAssets: []*string{
					jsii.String("reuseAssets"),
				},
				RoleArn: jsii.String("roleArn"),
				Rollback: jsii.Boolean(false),
				Stacks: []*string{
					jsii.String("stacks"),
				},
				Staging: jsii.Boolean(false),
				Strict: jsii.Boolean(false),
				ToolkitStackName: jsii.String("toolkitStackName"),
				Trace: jsii.Boolean(false),
				UsePreviousParameters: jsii.Boolean(false),
				Verbose: jsii.Boolean(false),
				VersionReporting: jsii.Boolean(false),
			},
			Enabled: jsii.Boolean(false),
			ExpectedMessage: jsii.String("expectedMessage"),
			ExpectError: jsii.Boolean(false),
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				All: jsii.Boolean(false),
				App: jsii.String("app"),
				AssetMetadata: jsii.Boolean(false),
				CaBundlePath: jsii.String("caBundlePath"),
				Color: jsii.Boolean(false),
				Context: map[string]*string{
					"contextKey": jsii.String("context"),
				},
				Debug: jsii.Boolean(false),
				Ec2Creds: jsii.Boolean(false),
				Exclusively: jsii.Boolean(false),
				Force: jsii.Boolean(false),
				IgnoreErrors: jsii.Boolean(false),
				Json: jsii.Boolean(false),
				Lookups: jsii.Boolean(false),
				Notices: jsii.Boolean(false),
				Output: jsii.String("output"),
				PathMetadata: jsii.Boolean(false),
				Profile: jsii.String("profile"),
				Proxy: jsii.String("proxy"),
				RoleArn: jsii.String("roleArn"),
				Stacks: []*string{
					jsii.String("stacks"),
				},
				Staging: jsii.Boolean(false),
				Strict: jsii.Boolean(false),
				Trace: jsii.Boolean(false),
				Verbose: jsii.Boolean(false),
				VersionReporting: jsii.Boolean(false),
			},
			Enabled: jsii.Boolean(false),
			ExpectedMessage: jsii.String("expectedMessage"),
			ExpectError: jsii.Boolean(false),
		},
	},
	DiffAssets: jsii.Boolean(false),
	Hooks: &Hooks{
		PostDeploy: []*string{
			jsii.String("postDeploy"),
		},
		PostDestroy: []*string{
			jsii.String("postDestroy"),
		},
		PreDeploy: []*string{
			jsii.String("preDeploy"),
		},
		PreDestroy: []*string{
			jsii.String("preDestroy"),
		},
	},
	Regions: []*string{
		jsii.String("regions"),
	},
	StackUpdateWorkflow: jsii.Boolean(false),
}

type TestOptions added in v2.21.0

type TestOptions struct {
	// List of CloudFormation resource types in this stack that can be destroyed as part of an update without failing the test.
	//
	// This list should only include resources that for this specific
	// integration test we are sure will not cause errors or an outage if
	// destroyed. For example, maybe we know that a new resource will be created
	// first before the old resource is destroyed which prevents any outage.
	//
	// e.g. ['AWS::IAM::Role']
	// Default: - do not allow destruction of any resources on update.
	//
	AllowDestroy *[]*string `field:"optional" json:"allowDestroy" yaml:"allowDestroy"`
	// Additional options to use for each CDK command.
	// Default: - runner default options.
	//
	CdkCommandOptions *CdkCommands `field:"optional" json:"cdkCommandOptions" yaml:"cdkCommandOptions"`
	// Whether or not to include asset hashes in the diff Asset hashes can introduces a lot of unneccessary noise into tests, but there are some cases where asset hashes _should_ be included.
	//
	// For example
	// any tests involving custom resources or bundling.
	// Default: false.
	//
	DiffAssets *bool `field:"optional" json:"diffAssets" yaml:"diffAssets"`
	// Additional commands to run at predefined points in the test workflow.
	//
	// e.g. { postDeploy: ['yarn', 'test'] }
	// Default: - no hooks.
	//
	Hooks *Hooks `field:"optional" json:"hooks" yaml:"hooks"`
	// Limit deployment to these regions.
	// Default: - can run in any region.
	//
	Regions *[]*string `field:"optional" json:"regions" yaml:"regions"`
	// Run update workflow on this test case This should only be set to false to test scenarios that are not possible to test as part of the update workflow.
	// Default: true.
	//
	StackUpdateWorkflow *bool `field:"optional" json:"stackUpdateWorkflow" yaml:"stackUpdateWorkflow"`
}

The set of options to control the workflow of the test runner.

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"

testOptions := &TestOptions{
	AllowDestroy: []*string{
		jsii.String("allowDestroy"),
	},
	CdkCommandOptions: &CdkCommands{
		Deploy: &DeployCommand{
			Args: &DeployOptions{
				All: jsii.Boolean(false),
				App: jsii.String("app"),
				AssetMetadata: jsii.Boolean(false),
				CaBundlePath: jsii.String("caBundlePath"),
				ChangeSetName: jsii.String("changeSetName"),
				Ci: jsii.Boolean(false),
				Color: jsii.Boolean(false),
				Concurrency: jsii.Number(123),
				Context: map[string]*string{
					"contextKey": jsii.String("context"),
				},
				Debug: jsii.Boolean(false),
				Ec2Creds: jsii.Boolean(false),
				Exclusively: jsii.Boolean(false),
				Execute: jsii.Boolean(false),
				Force: jsii.Boolean(false),
				IgnoreErrors: jsii.Boolean(false),
				Json: jsii.Boolean(false),
				Lookups: jsii.Boolean(false),
				Notices: jsii.Boolean(false),
				NotificationArns: []*string{
					jsii.String("notificationArns"),
				},
				Output: jsii.String("output"),
				OutputsFile: jsii.String("outputsFile"),
				Parameters: map[string]*string{
					"parametersKey": jsii.String("parameters"),
				},
				PathMetadata: jsii.Boolean(false),
				Profile: jsii.String("profile"),
				Proxy: jsii.String("proxy"),
				RequireApproval: awscdk.Cloud_assembly_schema.RequireApproval_NEVER,
				ReuseAssets: []*string{
					jsii.String("reuseAssets"),
				},
				RoleArn: jsii.String("roleArn"),
				Rollback: jsii.Boolean(false),
				Stacks: []*string{
					jsii.String("stacks"),
				},
				Staging: jsii.Boolean(false),
				Strict: jsii.Boolean(false),
				ToolkitStackName: jsii.String("toolkitStackName"),
				Trace: jsii.Boolean(false),
				UsePreviousParameters: jsii.Boolean(false),
				Verbose: jsii.Boolean(false),
				VersionReporting: jsii.Boolean(false),
			},
			Enabled: jsii.Boolean(false),
			ExpectedMessage: jsii.String("expectedMessage"),
			ExpectError: jsii.Boolean(false),
		},
		Destroy: &DestroyCommand{
			Args: &DestroyOptions{
				All: jsii.Boolean(false),
				App: jsii.String("app"),
				AssetMetadata: jsii.Boolean(false),
				CaBundlePath: jsii.String("caBundlePath"),
				Color: jsii.Boolean(false),
				Context: map[string]*string{
					"contextKey": jsii.String("context"),
				},
				Debug: jsii.Boolean(false),
				Ec2Creds: jsii.Boolean(false),
				Exclusively: jsii.Boolean(false),
				Force: jsii.Boolean(false),
				IgnoreErrors: jsii.Boolean(false),
				Json: jsii.Boolean(false),
				Lookups: jsii.Boolean(false),
				Notices: jsii.Boolean(false),
				Output: jsii.String("output"),
				PathMetadata: jsii.Boolean(false),
				Profile: jsii.String("profile"),
				Proxy: jsii.String("proxy"),
				RoleArn: jsii.String("roleArn"),
				Stacks: []*string{
					jsii.String("stacks"),
				},
				Staging: jsii.Boolean(false),
				Strict: jsii.Boolean(false),
				Trace: jsii.Boolean(false),
				Verbose: jsii.Boolean(false),
				VersionReporting: jsii.Boolean(false),
			},
			Enabled: jsii.Boolean(false),
			ExpectedMessage: jsii.String("expectedMessage"),
			ExpectError: jsii.Boolean(false),
		},
	},
	DiffAssets: jsii.Boolean(false),
	Hooks: &Hooks{
		PostDeploy: []*string{
			jsii.String("postDeploy"),
		},
		PostDestroy: []*string{
			jsii.String("postDestroy"),
		},
		PreDeploy: []*string{
			jsii.String("preDeploy"),
		},
		PreDestroy: []*string{
			jsii.String("preDestroy"),
		},
	},
	Regions: []*string{
		jsii.String("regions"),
	},
	StackUpdateWorkflow: jsii.Boolean(false),
}

type TreeArtifactProperties

type TreeArtifactProperties struct {
	// Filename of the tree artifact.
	File *string `field:"required" json:"file" yaml:"file"`
}

Artifact properties for the Construct Tree Artifact.

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"

treeArtifactProperties := &TreeArtifactProperties{
	File: jsii.String("file"),
}

type VpcContextQuery

type VpcContextQuery struct {
	// Query account.
	Account *string `field:"required" json:"account" yaml:"account"`
	// Filters to apply to the VPC.
	//
	// Filter parameters are the same as passed to DescribeVpcs.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html
	//
	Filter *map[string]*string `field:"required" json:"filter" yaml:"filter"`
	// Query region.
	Region *string `field:"required" json:"region" yaml:"region"`
	// The ARN of the role that should be used to look up the missing values.
	// Default: - None.
	//
	LookupRoleArn *string `field:"optional" json:"lookupRoleArn" yaml:"lookupRoleArn"`
	// Whether to populate the subnetGroups field of the `VpcContextResponse`, which contains potentially asymmetric subnet groups.
	// Default: false.
	//
	ReturnAsymmetricSubnets *bool `field:"optional" json:"returnAsymmetricSubnets" yaml:"returnAsymmetricSubnets"`
	// Whether to populate the `vpnGatewayId` field of the `VpcContextResponse`, which contains the VPN Gateway ID, if one exists.
	//
	// You can explicitly
	// disable this in order to avoid the lookup if you know the VPC does not have
	// a VPN Gatway attached.
	// Default: true.
	//
	ReturnVpnGateways *bool `field:"optional" json:"returnVpnGateways" yaml:"returnVpnGateways"`
	// Optional tag for subnet group name.
	//
	// If not provided, we'll look at the aws-cdk:subnet-name tag.
	// If the subnet does not have the specified tag,
	// we'll use its type as the name.
	// Default: 'aws-cdk:subnet-name'.
	//
	SubnetGroupNameTag *string `field:"optional" json:"subnetGroupNameTag" yaml:"subnetGroupNameTag"`
}

Query input for looking up a VPC.

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"

vpcContextQuery := &VpcContextQuery{
	Account: jsii.String("account"),
	Filter: map[string]*string{
		"filterKey": jsii.String("filter"),
	},
	Region: jsii.String("region"),

	// the properties below are optional
	LookupRoleArn: jsii.String("lookupRoleArn"),
	ReturnAsymmetricSubnets: jsii.Boolean(false),
	ReturnVpnGateways: jsii.Boolean(false),
	SubnetGroupNameTag: jsii.String("subnetGroupNameTag"),
}

Jump to

Keyboard shortcuts

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