awsimagebuilder

package
v1.168.0-devpreview Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

README

AWS::ImageBuilder Construct Library

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

import imagebuilder "github.com/aws/aws-cdk-go/awscdk"

There are no official hand-written (L2) constructs for this service yet. Here are some suggestions on how to proceed:

There are no hand-written (L2) constructs for this service yet. However, you can still use the automatically generated L1 constructs, and use this service exactly as you would using CloudFormation directly.

For more information on the resources and properties available for this service, see the CloudFormation documentation for AWS::ImageBuilder.

(Read the CDK Contributing Guide and submit an RFC if you are interested in contributing to this construct library.)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CfnComponent_CFN_RESOURCE_TYPE_NAME

func CfnComponent_CFN_RESOURCE_TYPE_NAME() *string

func CfnComponent_IsCfnElement

func CfnComponent_IsCfnElement(x interface{}) *bool

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

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

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

func CfnComponent_IsCfnResource

func CfnComponent_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnComponent_IsConstruct

func CfnComponent_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnContainerRecipe_CFN_RESOURCE_TYPE_NAME

func CfnContainerRecipe_CFN_RESOURCE_TYPE_NAME() *string

func CfnContainerRecipe_IsCfnElement

func CfnContainerRecipe_IsCfnElement(x interface{}) *bool

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

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

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

func CfnContainerRecipe_IsCfnResource

func CfnContainerRecipe_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnContainerRecipe_IsConstruct

func CfnContainerRecipe_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnDistributionConfiguration_CFN_RESOURCE_TYPE_NAME

func CfnDistributionConfiguration_CFN_RESOURCE_TYPE_NAME() *string

func CfnDistributionConfiguration_IsCfnElement

func CfnDistributionConfiguration_IsCfnElement(x interface{}) *bool

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

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

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

func CfnDistributionConfiguration_IsCfnResource

func CfnDistributionConfiguration_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnDistributionConfiguration_IsConstruct

func CfnDistributionConfiguration_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnImagePipeline_CFN_RESOURCE_TYPE_NAME

func CfnImagePipeline_CFN_RESOURCE_TYPE_NAME() *string

func CfnImagePipeline_IsCfnElement

func CfnImagePipeline_IsCfnElement(x interface{}) *bool

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

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

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

func CfnImagePipeline_IsCfnResource

func CfnImagePipeline_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnImagePipeline_IsConstruct

func CfnImagePipeline_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnImageRecipe_CFN_RESOURCE_TYPE_NAME

func CfnImageRecipe_CFN_RESOURCE_TYPE_NAME() *string

func CfnImageRecipe_IsCfnElement

func CfnImageRecipe_IsCfnElement(x interface{}) *bool

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

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

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

func CfnImageRecipe_IsCfnResource

func CfnImageRecipe_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnImageRecipe_IsConstruct

func CfnImageRecipe_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnImage_CFN_RESOURCE_TYPE_NAME

func CfnImage_CFN_RESOURCE_TYPE_NAME() *string

func CfnImage_IsCfnElement

func CfnImage_IsCfnElement(x interface{}) *bool

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

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

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

func CfnImage_IsCfnResource

func CfnImage_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnImage_IsConstruct

func CfnImage_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnInfrastructureConfiguration_CFN_RESOURCE_TYPE_NAME

func CfnInfrastructureConfiguration_CFN_RESOURCE_TYPE_NAME() *string

func CfnInfrastructureConfiguration_IsCfnElement

func CfnInfrastructureConfiguration_IsCfnElement(x interface{}) *bool

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

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

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

func CfnInfrastructureConfiguration_IsCfnResource

func CfnInfrastructureConfiguration_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnInfrastructureConfiguration_IsConstruct

func CfnInfrastructureConfiguration_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func NewCfnComponent_Override

func NewCfnComponent_Override(c CfnComponent, scope awscdk.Construct, id *string, props *CfnComponentProps)

Create a new `AWS::ImageBuilder::Component`.

func NewCfnContainerRecipe_Override

func NewCfnContainerRecipe_Override(c CfnContainerRecipe, scope awscdk.Construct, id *string, props *CfnContainerRecipeProps)

Create a new `AWS::ImageBuilder::ContainerRecipe`.

func NewCfnDistributionConfiguration_Override

func NewCfnDistributionConfiguration_Override(c CfnDistributionConfiguration, scope awscdk.Construct, id *string, props *CfnDistributionConfigurationProps)

Create a new `AWS::ImageBuilder::DistributionConfiguration`.

func NewCfnImagePipeline_Override

func NewCfnImagePipeline_Override(c CfnImagePipeline, scope awscdk.Construct, id *string, props *CfnImagePipelineProps)

Create a new `AWS::ImageBuilder::ImagePipeline`.

func NewCfnImageRecipe_Override

func NewCfnImageRecipe_Override(c CfnImageRecipe, scope awscdk.Construct, id *string, props *CfnImageRecipeProps)

Create a new `AWS::ImageBuilder::ImageRecipe`.

func NewCfnImage_Override

func NewCfnImage_Override(c CfnImage, scope awscdk.Construct, id *string, props *CfnImageProps)

Create a new `AWS::ImageBuilder::Image`.

func NewCfnInfrastructureConfiguration_Override

func NewCfnInfrastructureConfiguration_Override(c CfnInfrastructureConfiguration, scope awscdk.Construct, id *string, props *CfnInfrastructureConfigurationProps)

Create a new `AWS::ImageBuilder::InfrastructureConfiguration`.

Types

type CfnComponent

type CfnComponent interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Returns the Amazon Resource Name (ARN) of the component.
	//
	// The following pattern is applied: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:\d{12}|aws):(?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|\d+)\.(?:x|\d+)\.(?:x|\d+))(?:/\d+)?)?$` .
	AttrArn() *string
	// Returns the encryption status of the component.
	//
	// For example `true` or `false` .
	AttrEncrypted() awscdk.IResolvable
	// Returns the name of the component.
	AttrName() *string
	// Image Builder determines the component type based on the phases that are defined in the component document.
	//
	// If there is only one phase, and its name is "test", then the type is `TEST` . For all other components, the type is `BUILD` .
	AttrType() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// The change description of the component.
	//
	// Describes what change has been made in this version, or what makes this version different from other versions of this component.
	ChangeDescription() *string
	SetChangeDescription(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Component `data` contains inline YAML document content for the component.
	//
	// Alternatively, you can specify the `uri` of a YAML document file stored in Amazon S3. However, you cannot specify both properties.
	Data() *string
	SetData(val *string)
	// The description of the component.
	//
	// Describes the contents of the component.
	Description() *string
	SetDescription(val *string)
	// The ID of the KMS key that should be used to encrypt this component.
	KmsKeyId() *string
	SetKmsKeyId(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of the component.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The platform of the component.
	Platform() *string
	SetPlatform(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The operating system (OS) version supported by the component.
	//
	// If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation.
	SupportedOsVersions() *[]*string
	SetSupportedOsVersions(val *[]*string)
	// The tags of the component.
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// The `uri` of a YAML component document file.
	//
	// This must be an S3 URL ( `s3://bucket/key` ), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify component content up to your service quota.
	//
	// Alternatively, you can specify the YAML document inline, using the component `data` property. You cannot specify both properties.
	Uri() *string
	SetUri(val *string)
	// The component version.
	//
	// For example, `1.0.0` .
	Version() *string
	SetVersion(val *string)
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::Component`.

Creates a new component that can be used to build, validate, test, and assess your image. The component is based on a YAML document that you specify using exactly one of the following methods:

- Inline, using the `data` property in the request body. - A URL that points to a YAML document file stored in Amazon S3, using the `uri` property in the request body.

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"

cfnComponent := awscdk.Aws_imagebuilder.NewCfnComponent(this, jsii.String("MyCfnComponent"), &cfnComponentProps{
	name: jsii.String("name"),
	platform: jsii.String("platform"),
	version: jsii.String("version"),

	// the properties below are optional
	changeDescription: jsii.String("changeDescription"),
	data: jsii.String("data"),
	description: jsii.String("description"),
	kmsKeyId: jsii.String("kmsKeyId"),
	supportedOsVersions: []*string{
		jsii.String("supportedOsVersions"),
	},
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	uri: jsii.String("uri"),
})

func NewCfnComponent

func NewCfnComponent(scope awscdk.Construct, id *string, props *CfnComponentProps) CfnComponent

Create a new `AWS::ImageBuilder::Component`.

type CfnComponentProps

type CfnComponentProps struct {
	// The name of the component.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The platform of the component.
	Platform *string `field:"required" json:"platform" yaml:"platform"`
	// The component version.
	//
	// For example, `1.0.0` .
	Version *string `field:"required" json:"version" yaml:"version"`
	// The change description of the component.
	//
	// Describes what change has been made in this version, or what makes this version different from other versions of this component.
	ChangeDescription *string `field:"optional" json:"changeDescription" yaml:"changeDescription"`
	// Component `data` contains inline YAML document content for the component.
	//
	// Alternatively, you can specify the `uri` of a YAML document file stored in Amazon S3. However, you cannot specify both properties.
	Data *string `field:"optional" json:"data" yaml:"data"`
	// The description of the component.
	//
	// Describes the contents of the component.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The ID of the KMS key that should be used to encrypt this component.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// The operating system (OS) version supported by the component.
	//
	// If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation.
	SupportedOsVersions *[]*string `field:"optional" json:"supportedOsVersions" yaml:"supportedOsVersions"`
	// The tags of the component.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
	// The `uri` of a YAML component document file.
	//
	// This must be an S3 URL ( `s3://bucket/key` ), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify component content up to your service quota.
	//
	// Alternatively, you can specify the YAML document inline, using the component `data` property. You cannot specify both properties.
	Uri *string `field:"optional" json:"uri" yaml:"uri"`
}

Properties for defining a `CfnComponent`.

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"

cfnComponentProps := &cfnComponentProps{
	name: jsii.String("name"),
	platform: jsii.String("platform"),
	version: jsii.String("version"),

	// the properties below are optional
	changeDescription: jsii.String("changeDescription"),
	data: jsii.String("data"),
	description: jsii.String("description"),
	kmsKeyId: jsii.String("kmsKeyId"),
	supportedOsVersions: []*string{
		jsii.String("supportedOsVersions"),
	},
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	uri: jsii.String("uri"),
}

type CfnContainerRecipe

type CfnContainerRecipe interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Returns the Amazon Resource Name (ARN) of the container recipe.
	//
	// For example, `arn:aws:imagebuilder:us-east-1:123456789012:container-recipe/mybasicrecipe/2020.12.17` .
	AttrArn() *string
	// Returns the name of the container recipe.
	AttrName() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Build and test components that are included in the container recipe.
	//
	// Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination.
	Components() interface{}
	SetComponents(val interface{})
	// Specifies the type of container, such as Docker.
	ContainerType() *string
	SetContainerType(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The description of the container recipe.
	Description() *string
	SetDescription(val *string)
	// Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside.
	//
	// The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe.
	DockerfileTemplateData() *string
	SetDockerfileTemplateData(val *string)
	// The S3 URI for the Dockerfile that will be used to build your container image.
	DockerfileTemplateUri() *string
	SetDockerfileTemplateUri(val *string)
	// Specifies the operating system version for the base image.
	ImageOsVersionOverride() *string
	SetImageOsVersionOverride(val *string)
	// A group of options that can be used to configure an instance for building and testing container images.
	InstanceConfiguration() interface{}
	SetInstanceConfiguration(val interface{})
	// Identifies which KMS key is used to encrypt the container image for distribution to the target Region.
	KmsKeyId() *string
	SetKmsKeyId(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of the container recipe.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The base image for the container recipe.
	ParentImage() *string
	SetParentImage(val *string)
	// Specifies the operating system platform when you use a custom base image.
	PlatformOverride() *string
	SetPlatformOverride(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Tags that are attached to the container recipe.
	Tags() awscdk.TagManager
	// The destination repository for the container image.
	TargetRepository() interface{}
	SetTargetRepository(val interface{})
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// The semantic version of the container recipe.
	//
	// > The semantic version has four nodes: <major>.<minor>.<patch>/<build>. You can assign values for the first three, and can filter on all of them.
	// >
	// > *Assignment:* For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node.
	// >
	// > *Patterns:* You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01.
	// >
	// > *Filtering:* With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards.
	Version() *string
	SetVersion(val *string)
	// The working directory for use during build and test workflows.
	WorkingDirectory() *string
	SetWorkingDirectory(val *string)
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::ContainerRecipe`.

Creates a new container recipe. Container recipes define how images are configured, tested, and assessed.

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"

cfnContainerRecipe := awscdk.Aws_imagebuilder.NewCfnContainerRecipe(this, jsii.String("MyCfnContainerRecipe"), &cfnContainerRecipeProps{
	components: []interface{}{
		&componentConfigurationProperty{
			componentArn: jsii.String("componentArn"),
		},
	},
	containerType: jsii.String("containerType"),
	name: jsii.String("name"),
	parentImage: jsii.String("parentImage"),
	targetRepository: &targetContainerRepositoryProperty{
		repositoryName: jsii.String("repositoryName"),
		service: jsii.String("service"),
	},
	version: jsii.String("version"),

	// the properties below are optional
	description: jsii.String("description"),
	dockerfileTemplateData: jsii.String("dockerfileTemplateData"),
	dockerfileTemplateUri: jsii.String("dockerfileTemplateUri"),
	imageOsVersionOverride: jsii.String("imageOsVersionOverride"),
	instanceConfiguration: &instanceConfigurationProperty{
		blockDeviceMappings: []interface{}{
			&instanceBlockDeviceMappingProperty{
				deviceName: jsii.String("deviceName"),
				ebs: &ebsInstanceBlockDeviceSpecificationProperty{
					deleteOnTermination: jsii.Boolean(false),
					encrypted: jsii.Boolean(false),
					iops: jsii.Number(123),
					kmsKeyId: jsii.String("kmsKeyId"),
					snapshotId: jsii.String("snapshotId"),
					throughput: jsii.Number(123),
					volumeSize: jsii.Number(123),
					volumeType: jsii.String("volumeType"),
				},
				noDevice: jsii.String("noDevice"),
				virtualName: jsii.String("virtualName"),
			},
		},
		image: jsii.String("image"),
	},
	kmsKeyId: jsii.String("kmsKeyId"),
	platformOverride: jsii.String("platformOverride"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	workingDirectory: jsii.String("workingDirectory"),
})

func NewCfnContainerRecipe

func NewCfnContainerRecipe(scope awscdk.Construct, id *string, props *CfnContainerRecipeProps) CfnContainerRecipe

Create a new `AWS::ImageBuilder::ContainerRecipe`.

type CfnContainerRecipeProps

type CfnContainerRecipeProps struct {
	// Build and test components that are included in the container recipe.
	//
	// Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination.
	Components interface{} `field:"required" json:"components" yaml:"components"`
	// Specifies the type of container, such as Docker.
	ContainerType *string `field:"required" json:"containerType" yaml:"containerType"`
	// The name of the container recipe.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The base image for the container recipe.
	ParentImage *string `field:"required" json:"parentImage" yaml:"parentImage"`
	// The destination repository for the container image.
	TargetRepository interface{} `field:"required" json:"targetRepository" yaml:"targetRepository"`
	// The semantic version of the container recipe.
	//
	// > The semantic version has four nodes: <major>.<minor>.<patch>/<build>. You can assign values for the first three, and can filter on all of them.
	// >
	// > *Assignment:* For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node.
	// >
	// > *Patterns:* You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01.
	// >
	// > *Filtering:* With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards.
	Version *string `field:"required" json:"version" yaml:"version"`
	// The description of the container recipe.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside.
	//
	// The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe.
	DockerfileTemplateData *string `field:"optional" json:"dockerfileTemplateData" yaml:"dockerfileTemplateData"`
	// The S3 URI for the Dockerfile that will be used to build your container image.
	DockerfileTemplateUri *string `field:"optional" json:"dockerfileTemplateUri" yaml:"dockerfileTemplateUri"`
	// Specifies the operating system version for the base image.
	ImageOsVersionOverride *string `field:"optional" json:"imageOsVersionOverride" yaml:"imageOsVersionOverride"`
	// A group of options that can be used to configure an instance for building and testing container images.
	InstanceConfiguration interface{} `field:"optional" json:"instanceConfiguration" yaml:"instanceConfiguration"`
	// Identifies which KMS key is used to encrypt the container image for distribution to the target Region.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// Specifies the operating system platform when you use a custom base image.
	PlatformOverride *string `field:"optional" json:"platformOverride" yaml:"platformOverride"`
	// Tags that are attached to the container recipe.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
	// The working directory for use during build and test workflows.
	WorkingDirectory *string `field:"optional" json:"workingDirectory" yaml:"workingDirectory"`
}

Properties for defining a `CfnContainerRecipe`.

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"

cfnContainerRecipeProps := &cfnContainerRecipeProps{
	components: []interface{}{
		&componentConfigurationProperty{
			componentArn: jsii.String("componentArn"),
		},
	},
	containerType: jsii.String("containerType"),
	name: jsii.String("name"),
	parentImage: jsii.String("parentImage"),
	targetRepository: &targetContainerRepositoryProperty{
		repositoryName: jsii.String("repositoryName"),
		service: jsii.String("service"),
	},
	version: jsii.String("version"),

	// the properties below are optional
	description: jsii.String("description"),
	dockerfileTemplateData: jsii.String("dockerfileTemplateData"),
	dockerfileTemplateUri: jsii.String("dockerfileTemplateUri"),
	imageOsVersionOverride: jsii.String("imageOsVersionOverride"),
	instanceConfiguration: &instanceConfigurationProperty{
		blockDeviceMappings: []interface{}{
			&instanceBlockDeviceMappingProperty{
				deviceName: jsii.String("deviceName"),
				ebs: &ebsInstanceBlockDeviceSpecificationProperty{
					deleteOnTermination: jsii.Boolean(false),
					encrypted: jsii.Boolean(false),
					iops: jsii.Number(123),
					kmsKeyId: jsii.String("kmsKeyId"),
					snapshotId: jsii.String("snapshotId"),
					throughput: jsii.Number(123),
					volumeSize: jsii.Number(123),
					volumeType: jsii.String("volumeType"),
				},
				noDevice: jsii.String("noDevice"),
				virtualName: jsii.String("virtualName"),
			},
		},
		image: jsii.String("image"),
	},
	kmsKeyId: jsii.String("kmsKeyId"),
	platformOverride: jsii.String("platformOverride"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	workingDirectory: jsii.String("workingDirectory"),
}

type CfnContainerRecipe_ComponentConfigurationProperty

type CfnContainerRecipe_ComponentConfigurationProperty struct {
	// The Amazon Resource Name (ARN) of the component.
	ComponentArn *string `field:"optional" json:"componentArn" yaml:"componentArn"`
}

Configuration details of the component.

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"

componentConfigurationProperty := &componentConfigurationProperty{
	componentArn: jsii.String("componentArn"),
}

type CfnContainerRecipe_EbsInstanceBlockDeviceSpecificationProperty

type CfnContainerRecipe_EbsInstanceBlockDeviceSpecificationProperty struct {
	// Use to configure delete on termination of the associated device.
	DeleteOnTermination interface{} `field:"optional" json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// Use to configure device encryption.
	Encrypted interface{} `field:"optional" json:"encrypted" yaml:"encrypted"`
	// Use to configure device IOPS.
	Iops *float64 `field:"optional" json:"iops" yaml:"iops"`
	// Use to configure the KMS key to use when encrypting the device.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// The snapshot that defines the device contents.
	SnapshotId *string `field:"optional" json:"snapshotId" yaml:"snapshotId"`
	// *For GP3 volumes only* – The throughput in MiB/s that the volume supports.
	Throughput *float64 `field:"optional" json:"throughput" yaml:"throughput"`
	// Use to override the device's volume size.
	VolumeSize *float64 `field:"optional" json:"volumeSize" yaml:"volumeSize"`
	// Use to override the device's volume type.
	VolumeType *string `field:"optional" json:"volumeType" yaml:"volumeType"`
}

Amazon EBS-specific block device mapping specifications.

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"

ebsInstanceBlockDeviceSpecificationProperty := &ebsInstanceBlockDeviceSpecificationProperty{
	deleteOnTermination: jsii.Boolean(false),
	encrypted: jsii.Boolean(false),
	iops: jsii.Number(123),
	kmsKeyId: jsii.String("kmsKeyId"),
	snapshotId: jsii.String("snapshotId"),
	throughput: jsii.Number(123),
	volumeSize: jsii.Number(123),
	volumeType: jsii.String("volumeType"),
}

type CfnContainerRecipe_InstanceBlockDeviceMappingProperty

type CfnContainerRecipe_InstanceBlockDeviceMappingProperty struct {
	// The device to which these mappings apply.
	DeviceName *string `field:"optional" json:"deviceName" yaml:"deviceName"`
	// Use to manage Amazon EBS-specific configuration for this mapping.
	Ebs interface{} `field:"optional" json:"ebs" yaml:"ebs"`
	// Use to remove a mapping from the base image.
	NoDevice *string `field:"optional" json:"noDevice" yaml:"noDevice"`
	// Use to manage instance ephemeral devices.
	VirtualName *string `field:"optional" json:"virtualName" yaml:"virtualName"`
}

Defines block device mappings for the instance used to configure your image.

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"

instanceBlockDeviceMappingProperty := &instanceBlockDeviceMappingProperty{
	deviceName: jsii.String("deviceName"),
	ebs: &ebsInstanceBlockDeviceSpecificationProperty{
		deleteOnTermination: jsii.Boolean(false),
		encrypted: jsii.Boolean(false),
		iops: jsii.Number(123),
		kmsKeyId: jsii.String("kmsKeyId"),
		snapshotId: jsii.String("snapshotId"),
		throughput: jsii.Number(123),
		volumeSize: jsii.Number(123),
		volumeType: jsii.String("volumeType"),
	},
	noDevice: jsii.String("noDevice"),
	virtualName: jsii.String("virtualName"),
}

type CfnContainerRecipe_InstanceConfigurationProperty

type CfnContainerRecipe_InstanceConfigurationProperty struct {
	// Defines the block devices to attach for building an instance from this Image Builder AMI.
	BlockDeviceMappings interface{} `field:"optional" json:"blockDeviceMappings" yaml:"blockDeviceMappings"`
	// The AMI ID to use as the base image for a container build and test instance.
	//
	// If not specified, Image Builder will use the appropriate ECS-optimized AMI as a base image.
	Image *string `field:"optional" json:"image" yaml:"image"`
}

Defines a custom base AMI and block device mapping configurations of an instance used for building and testing container 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"

instanceConfigurationProperty := &instanceConfigurationProperty{
	blockDeviceMappings: []interface{}{
		&instanceBlockDeviceMappingProperty{
			deviceName: jsii.String("deviceName"),
			ebs: &ebsInstanceBlockDeviceSpecificationProperty{
				deleteOnTermination: jsii.Boolean(false),
				encrypted: jsii.Boolean(false),
				iops: jsii.Number(123),
				kmsKeyId: jsii.String("kmsKeyId"),
				snapshotId: jsii.String("snapshotId"),
				throughput: jsii.Number(123),
				volumeSize: jsii.Number(123),
				volumeType: jsii.String("volumeType"),
			},
			noDevice: jsii.String("noDevice"),
			virtualName: jsii.String("virtualName"),
		},
	},
	image: jsii.String("image"),
}

type CfnContainerRecipe_TargetContainerRepositoryProperty

type CfnContainerRecipe_TargetContainerRepositoryProperty struct {
	// The name of the container repository where the output container image is stored.
	//
	// This name is prefixed by the repository location.
	RepositoryName *string `field:"optional" json:"repositoryName" yaml:"repositoryName"`
	// Specifies the service in which this image was registered.
	Service *string `field:"optional" json:"service" yaml:"service"`
}

The container repository where the output container image is stored.

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"

targetContainerRepositoryProperty := &targetContainerRepositoryProperty{
	repositoryName: jsii.String("repositoryName"),
	service: jsii.String("service"),
}

type CfnDistributionConfiguration

type CfnDistributionConfiguration interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Returns the Amazon Resource Name (ARN) of this distribution configuration.
	//
	// The following pattern is applied: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:\d{12}|aws):(?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|\d+)\.(?:x|\d+)\.(?:x|\d+))(?:/\d+)?)?$` .
	AttrArn() *string
	// Returns the name of the distribution configuration.
	AttrName() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The description of this distribution configuration.
	Description() *string
	SetDescription(val *string)
	// The distributions of this distribution configuration formatted as an array of Distribution objects.
	Distributions() interface{}
	SetDistributions(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of this distribution configuration.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The tags of this distribution configuration.
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::DistributionConfiguration`.

A distribution configuration allows you to specify the name and description of your output AMI, authorize other AWS account s to launch the AMI, and replicate the AMI to other AWS Regions . It also allows you to export the AMI to Amazon S3 .

Example:

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

var amiDistributionConfiguration interface{}
var containerDistributionConfiguration interface{}

cfnDistributionConfiguration := awscdk.Aws_imagebuilder.NewCfnDistributionConfiguration(this, jsii.String("MyCfnDistributionConfiguration"), &cfnDistributionConfigurationProps{
	distributions: []interface{}{
		&distributionProperty{
			region: jsii.String("region"),

			// the properties below are optional
			amiDistributionConfiguration: amiDistributionConfiguration,
			containerDistributionConfiguration: containerDistributionConfiguration,
			fastLaunchConfigurations: []interface{}{
				&fastLaunchConfigurationProperty{
					accountId: jsii.String("accountId"),
					enabled: jsii.Boolean(false),
					launchTemplate: &fastLaunchLaunchTemplateSpecificationProperty{
						launchTemplateId: jsii.String("launchTemplateId"),
						launchTemplateName: jsii.String("launchTemplateName"),
						launchTemplateVersion: jsii.String("launchTemplateVersion"),
					},
					maxParallelLaunches: jsii.Number(123),
					snapshotConfiguration: &fastLaunchSnapshotConfigurationProperty{
						targetResourceCount: jsii.Number(123),
					},
				},
			},
			launchTemplateConfigurations: []interface{}{
				&launchTemplateConfigurationProperty{
					accountId: jsii.String("accountId"),
					launchTemplateId: jsii.String("launchTemplateId"),
					setDefaultVersion: jsii.Boolean(false),
				},
			},
			licenseConfigurationArns: []*string{
				jsii.String("licenseConfigurationArns"),
			},
		},
	},
	name: jsii.String("name"),

	// the properties below are optional
	description: jsii.String("description"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
})

func NewCfnDistributionConfiguration

func NewCfnDistributionConfiguration(scope awscdk.Construct, id *string, props *CfnDistributionConfigurationProps) CfnDistributionConfiguration

Create a new `AWS::ImageBuilder::DistributionConfiguration`.

type CfnDistributionConfigurationProps

type CfnDistributionConfigurationProps struct {
	// The distributions of this distribution configuration formatted as an array of Distribution objects.
	Distributions interface{} `field:"required" json:"distributions" yaml:"distributions"`
	// The name of this distribution configuration.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The description of this distribution configuration.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The tags of this distribution configuration.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnDistributionConfiguration`.

Example:

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

var amiDistributionConfiguration interface{}
var containerDistributionConfiguration interface{}

cfnDistributionConfigurationProps := &cfnDistributionConfigurationProps{
	distributions: []interface{}{
		&distributionProperty{
			region: jsii.String("region"),

			// the properties below are optional
			amiDistributionConfiguration: amiDistributionConfiguration,
			containerDistributionConfiguration: containerDistributionConfiguration,
			fastLaunchConfigurations: []interface{}{
				&fastLaunchConfigurationProperty{
					accountId: jsii.String("accountId"),
					enabled: jsii.Boolean(false),
					launchTemplate: &fastLaunchLaunchTemplateSpecificationProperty{
						launchTemplateId: jsii.String("launchTemplateId"),
						launchTemplateName: jsii.String("launchTemplateName"),
						launchTemplateVersion: jsii.String("launchTemplateVersion"),
					},
					maxParallelLaunches: jsii.Number(123),
					snapshotConfiguration: &fastLaunchSnapshotConfigurationProperty{
						targetResourceCount: jsii.Number(123),
					},
				},
			},
			launchTemplateConfigurations: []interface{}{
				&launchTemplateConfigurationProperty{
					accountId: jsii.String("accountId"),
					launchTemplateId: jsii.String("launchTemplateId"),
					setDefaultVersion: jsii.Boolean(false),
				},
			},
			licenseConfigurationArns: []*string{
				jsii.String("licenseConfigurationArns"),
			},
		},
	},
	name: jsii.String("name"),

	// the properties below are optional
	description: jsii.String("description"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
}

type CfnDistributionConfiguration_AmiDistributionConfigurationProperty

type CfnDistributionConfiguration_AmiDistributionConfigurationProperty struct {
	// The tags to apply to AMIs distributed to this Region.
	AmiTags interface{} `field:"optional" json:"amiTags" yaml:"amiTags"`
	// The description of the AMI distribution configuration.
	//
	// Minimum and maximum length are in characters.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key identifier used to encrypt the distributed image.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// Launch permissions can be used to configure which AWS account s can use the AMI to launch instances.
	LaunchPermissionConfiguration interface{} `field:"optional" json:"launchPermissionConfiguration" yaml:"launchPermissionConfiguration"`
	// The name of the output AMI.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The ID of an account to which you want to distribute an image.
	TargetAccountIds *[]*string `field:"optional" json:"targetAccountIds" yaml:"targetAccountIds"`
}

Define and configure the output AMIs of the pipeline.

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"

amiDistributionConfigurationProperty := &amiDistributionConfigurationProperty{
	amiTags: map[string]*string{
		"amiTagsKey": jsii.String("amiTags"),
	},
	description: jsii.String("description"),
	kmsKeyId: jsii.String("kmsKeyId"),
	launchPermissionConfiguration: &launchPermissionConfigurationProperty{
		organizationalUnitArns: []*string{
			jsii.String("organizationalUnitArns"),
		},
		organizationArns: []*string{
			jsii.String("organizationArns"),
		},
		userGroups: []*string{
			jsii.String("userGroups"),
		},
		userIds: []*string{
			jsii.String("userIds"),
		},
	},
	name: jsii.String("name"),
	targetAccountIds: []*string{
		jsii.String("targetAccountIds"),
	},
}

type CfnDistributionConfiguration_ContainerDistributionConfigurationProperty

type CfnDistributionConfiguration_ContainerDistributionConfigurationProperty struct {
	// Tags that are attached to the container distribution configuration.
	ContainerTags *[]*string `field:"optional" json:"containerTags" yaml:"containerTags"`
	// The description of the container distribution configuration.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The destination repository for the container distribution configuration.
	TargetRepository interface{} `field:"optional" json:"targetRepository" yaml:"targetRepository"`
}

Container distribution settings for encryption, licensing, and sharing in a specific Region.

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"

containerDistributionConfigurationProperty := &containerDistributionConfigurationProperty{
	containerTags: []*string{
		jsii.String("containerTags"),
	},
	description: jsii.String("description"),
	targetRepository: &targetContainerRepositoryProperty{
		repositoryName: jsii.String("repositoryName"),
		service: jsii.String("service"),
	},
}

type CfnDistributionConfiguration_DistributionProperty

type CfnDistributionConfiguration_DistributionProperty struct {
	// The target Region for the Distribution Configuration.
	//
	// For example, `eu-west-1` .
	Region *string `field:"required" json:"region" yaml:"region"`
	// The specific AMI settings, such as launch permissions and AMI tags.
	//
	// For details, see example schema below.
	AmiDistributionConfiguration interface{} `field:"optional" json:"amiDistributionConfiguration" yaml:"amiDistributionConfiguration"`
	// Container distribution settings for encryption, licensing, and sharing in a specific Region.
	//
	// For details, see example schema below.
	ContainerDistributionConfiguration interface{} `field:"optional" json:"containerDistributionConfiguration" yaml:"containerDistributionConfiguration"`
	// `CfnDistributionConfiguration.DistributionProperty.FastLaunchConfigurations`.
	FastLaunchConfigurations interface{} `field:"optional" json:"fastLaunchConfigurations" yaml:"fastLaunchConfigurations"`
	// A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts.
	LaunchTemplateConfigurations interface{} `field:"optional" json:"launchTemplateConfigurations" yaml:"launchTemplateConfigurations"`
	// The License Manager Configuration to associate with the AMI in the specified Region.
	//
	// For more information, see the [LicenseConfiguration API](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_LicenseConfiguration.html) .
	LicenseConfigurationArns *[]*string `field:"optional" json:"licenseConfigurationArns" yaml:"licenseConfigurationArns"`
}

The distribution configuration distribution defines the settings for a specific Region in the Distribution Configuration.

You must specify whether the distribution is for an AMI or a container image. To do so, include exactly one of the following data types for your distribution:

- amiDistributionConfiguration - containerDistributionConfiguration.

Example:

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

var amiDistributionConfiguration interface{}
var containerDistributionConfiguration interface{}

distributionProperty := &distributionProperty{
	region: jsii.String("region"),

	// the properties below are optional
	amiDistributionConfiguration: amiDistributionConfiguration,
	containerDistributionConfiguration: containerDistributionConfiguration,
	fastLaunchConfigurations: []interface{}{
		&fastLaunchConfigurationProperty{
			accountId: jsii.String("accountId"),
			enabled: jsii.Boolean(false),
			launchTemplate: &fastLaunchLaunchTemplateSpecificationProperty{
				launchTemplateId: jsii.String("launchTemplateId"),
				launchTemplateName: jsii.String("launchTemplateName"),
				launchTemplateVersion: jsii.String("launchTemplateVersion"),
			},
			maxParallelLaunches: jsii.Number(123),
			snapshotConfiguration: &fastLaunchSnapshotConfigurationProperty{
				targetResourceCount: jsii.Number(123),
			},
		},
	},
	launchTemplateConfigurations: []interface{}{
		&launchTemplateConfigurationProperty{
			accountId: jsii.String("accountId"),
			launchTemplateId: jsii.String("launchTemplateId"),
			setDefaultVersion: jsii.Boolean(false),
		},
	},
	licenseConfigurationArns: []*string{
		jsii.String("licenseConfigurationArns"),
	},
}

type CfnDistributionConfiguration_FastLaunchConfigurationProperty

type CfnDistributionConfiguration_FastLaunchConfigurationProperty struct {
	// `CfnDistributionConfiguration.FastLaunchConfigurationProperty.AccountId`.
	AccountId *string `field:"optional" json:"accountId" yaml:"accountId"`
	// `CfnDistributionConfiguration.FastLaunchConfigurationProperty.Enabled`.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// `CfnDistributionConfiguration.FastLaunchConfigurationProperty.LaunchTemplate`.
	LaunchTemplate interface{} `field:"optional" json:"launchTemplate" yaml:"launchTemplate"`
	// `CfnDistributionConfiguration.FastLaunchConfigurationProperty.MaxParallelLaunches`.
	MaxParallelLaunches *float64 `field:"optional" json:"maxParallelLaunches" yaml:"maxParallelLaunches"`
	// `CfnDistributionConfiguration.FastLaunchConfigurationProperty.SnapshotConfiguration`.
	SnapshotConfiguration interface{} `field:"optional" json:"snapshotConfiguration" yaml:"snapshotConfiguration"`
}

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"

fastLaunchConfigurationProperty := &fastLaunchConfigurationProperty{
	accountId: jsii.String("accountId"),
	enabled: jsii.Boolean(false),
	launchTemplate: &fastLaunchLaunchTemplateSpecificationProperty{
		launchTemplateId: jsii.String("launchTemplateId"),
		launchTemplateName: jsii.String("launchTemplateName"),
		launchTemplateVersion: jsii.String("launchTemplateVersion"),
	},
	maxParallelLaunches: jsii.Number(123),
	snapshotConfiguration: &fastLaunchSnapshotConfigurationProperty{
		targetResourceCount: jsii.Number(123),
	},
}

type CfnDistributionConfiguration_FastLaunchLaunchTemplateSpecificationProperty

type CfnDistributionConfiguration_FastLaunchLaunchTemplateSpecificationProperty struct {
	// `CfnDistributionConfiguration.FastLaunchLaunchTemplateSpecificationProperty.LaunchTemplateId`.
	LaunchTemplateId *string `field:"optional" json:"launchTemplateId" yaml:"launchTemplateId"`
	// `CfnDistributionConfiguration.FastLaunchLaunchTemplateSpecificationProperty.LaunchTemplateName`.
	LaunchTemplateName *string `field:"optional" json:"launchTemplateName" yaml:"launchTemplateName"`
	// `CfnDistributionConfiguration.FastLaunchLaunchTemplateSpecificationProperty.LaunchTemplateVersion`.
	LaunchTemplateVersion *string `field:"optional" json:"launchTemplateVersion" yaml:"launchTemplateVersion"`
}

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"

fastLaunchLaunchTemplateSpecificationProperty := &fastLaunchLaunchTemplateSpecificationProperty{
	launchTemplateId: jsii.String("launchTemplateId"),
	launchTemplateName: jsii.String("launchTemplateName"),
	launchTemplateVersion: jsii.String("launchTemplateVersion"),
}

type CfnDistributionConfiguration_FastLaunchSnapshotConfigurationProperty

type CfnDistributionConfiguration_FastLaunchSnapshotConfigurationProperty struct {
	// `CfnDistributionConfiguration.FastLaunchSnapshotConfigurationProperty.TargetResourceCount`.
	TargetResourceCount *float64 `field:"optional" json:"targetResourceCount" yaml:"targetResourceCount"`
}

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"

fastLaunchSnapshotConfigurationProperty := &fastLaunchSnapshotConfigurationProperty{
	targetResourceCount: jsii.Number(123),
}

type CfnDistributionConfiguration_LaunchPermissionConfigurationProperty

type CfnDistributionConfiguration_LaunchPermissionConfigurationProperty struct {
	// The ARN for an AWS Organizations organizational unit (OU) that you want to share your AMI with.
	//
	// For more information about key concepts for AWS Organizations , see [AWS Organizations terminology and concepts](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) .
	OrganizationalUnitArns *[]*string `field:"optional" json:"organizationalUnitArns" yaml:"organizationalUnitArns"`
	// The ARN for an AWS Organization that you want to share your AMI with.
	//
	// For more information, see [What is AWS Organizations ?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) .
	OrganizationArns *[]*string `field:"optional" json:"organizationArns" yaml:"organizationArns"`
	// The name of the group.
	UserGroups *[]*string `field:"optional" json:"userGroups" yaml:"userGroups"`
	// The AWS account ID.
	UserIds *[]*string `field:"optional" json:"userIds" yaml:"userIds"`
}

Describes the configuration for a launch permission.

The launch permission modification request is sent to the [Amazon EC2 ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html) API on behalf of the user for each Region they have selected to distribute the AMI. To make an AMI public, set the launch permission authorized accounts to `all` . See the examples for making an AMI public at [Amazon EC2 ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html) .

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"

launchPermissionConfigurationProperty := &launchPermissionConfigurationProperty{
	organizationalUnitArns: []*string{
		jsii.String("organizationalUnitArns"),
	},
	organizationArns: []*string{
		jsii.String("organizationArns"),
	},
	userGroups: []*string{
		jsii.String("userGroups"),
	},
	userIds: []*string{
		jsii.String("userIds"),
	},
}

type CfnDistributionConfiguration_LaunchTemplateConfigurationProperty

type CfnDistributionConfiguration_LaunchTemplateConfigurationProperty struct {
	// The account ID that this configuration applies to.
	AccountId *string `field:"optional" json:"accountId" yaml:"accountId"`
	// Identifies the Amazon EC2 launch template to use.
	LaunchTemplateId *string `field:"optional" json:"launchTemplateId" yaml:"launchTemplateId"`
	// Set the specified Amazon EC2 launch template as the default launch template for the specified account.
	SetDefaultVersion interface{} `field:"optional" json:"setDefaultVersion" yaml:"setDefaultVersion"`
}

Identifies an Amazon EC2 launch template to use for a specific account.

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"

launchTemplateConfigurationProperty := &launchTemplateConfigurationProperty{
	accountId: jsii.String("accountId"),
	launchTemplateId: jsii.String("launchTemplateId"),
	setDefaultVersion: jsii.Boolean(false),
}

type CfnDistributionConfiguration_TargetContainerRepositoryProperty

type CfnDistributionConfiguration_TargetContainerRepositoryProperty struct {
	// The name of the container repository where the output container image is stored.
	//
	// This name is prefixed by the repository location.
	RepositoryName *string `field:"optional" json:"repositoryName" yaml:"repositoryName"`
	// Specifies the service in which this image was registered.
	Service *string `field:"optional" json:"service" yaml:"service"`
}

The container repository where the output container image is stored.

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"

targetContainerRepositoryProperty := &targetContainerRepositoryProperty{
	repositoryName: jsii.String("repositoryName"),
	service: jsii.String("service"),
}

type CfnImage

type CfnImage interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Returns the Amazon Resource Name (ARN) of the image.
	//
	// For example, `arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1` .
	AttrArn() *string
	// Returns the AMI ID of the Amazon EC2 AMI in the Region in which you are using Image Builder.
	//
	// Values are returned only for AMIs, and not for container images.
	AttrImageId() *string
	// Returns a list of URIs for container images created in the context Region.
	//
	// Values are returned only for container images, and not for AMIs.
	AttrImageUri() *string
	// Returns the name of the image.
	AttrName() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// The Amazon Resource Name (ARN) of the container recipe that is used for this pipeline.
	ContainerRecipeArn() *string
	SetContainerRecipeArn(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The Amazon Resource Name (ARN) of the distribution configuration.
	DistributionConfigurationArn() *string
	SetDistributionConfigurationArn(val *string)
	// Collects additional information about the image being created, including the operating system (OS) version and package list.
	//
	// This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.
	EnhancedImageMetadataEnabled() interface{}
	SetEnhancedImageMetadataEnabled(val interface{})
	// The Amazon Resource Name (ARN) of the image recipe.
	ImageRecipeArn() *string
	SetImageRecipeArn(val *string)
	// The configuration settings for your image test components, which includes a toggle that allows you to turn off tests, and a timeout setting.
	ImageTestsConfiguration() interface{}
	SetImageTestsConfiguration(val interface{})
	// The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.
	InfrastructureConfigurationArn() *string
	SetInfrastructureConfigurationArn(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The tags of the image.
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::Image`.

An image build version. An image is a customized, secure, and up-to-date “golden” server image that is pre-installed and pre-configured with software and settings to meet specific IT standards.

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"

cfnImage := awscdk.Aws_imagebuilder.NewCfnImage(this, jsii.String("MyCfnImage"), &cfnImageProps{
	infrastructureConfigurationArn: jsii.String("infrastructureConfigurationArn"),

	// the properties below are optional
	containerRecipeArn: jsii.String("containerRecipeArn"),
	distributionConfigurationArn: jsii.String("distributionConfigurationArn"),
	enhancedImageMetadataEnabled: jsii.Boolean(false),
	imageRecipeArn: jsii.String("imageRecipeArn"),
	imageTestsConfiguration: &imageTestsConfigurationProperty{
		imageTestsEnabled: jsii.Boolean(false),
		timeoutMinutes: jsii.Number(123),
	},
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
})

func NewCfnImage

func NewCfnImage(scope awscdk.Construct, id *string, props *CfnImageProps) CfnImage

Create a new `AWS::ImageBuilder::Image`.

type CfnImagePipeline

type CfnImagePipeline interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Returns the Amazon Resource Name (ARN) of the image pipeline.
	//
	// For example, `arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline` .
	AttrArn() *string
	// Returns the name of the image pipeline.
	AttrName() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// The Amazon Resource Name (ARN) of the container recipe that is used for this pipeline.
	ContainerRecipeArn() *string
	SetContainerRecipeArn(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The description of this image pipeline.
	Description() *string
	SetDescription(val *string)
	// The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.
	DistributionConfigurationArn() *string
	SetDistributionConfigurationArn(val *string)
	// Collects additional information about the image being created, including the operating system (OS) version and package list.
	//
	// This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.
	EnhancedImageMetadataEnabled() interface{}
	SetEnhancedImageMetadataEnabled(val interface{})
	// The Amazon Resource Name (ARN) of the image recipe associated with this image pipeline.
	ImageRecipeArn() *string
	SetImageRecipeArn(val *string)
	// The configuration of the image tests that run after image creation to ensure the quality of the image that was created.
	ImageTestsConfiguration() interface{}
	SetImageTestsConfiguration(val interface{})
	// The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.
	InfrastructureConfigurationArn() *string
	SetInfrastructureConfigurationArn(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of the image pipeline.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The schedule of the image pipeline.
	//
	// A schedule configures how often and when a pipeline automatically creates a new image.
	Schedule() interface{}
	SetSchedule(val interface{})
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The status of the image pipeline.
	Status() *string
	SetStatus(val *string)
	// The tags of this image pipeline.
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::ImagePipeline`.

An image pipeline is the automation configuration for building secure OS images on AWS . The Image Builder image pipeline is associated with an image recipe that defines the build, validation, and test phases for an image build lifecycle. An image pipeline can be associated with an infrastructure configuration that defines where your image is built. You can define attributes, such as instance type, subnets, security groups, logging, and other infrastructure-related configurations. You can also associate your image pipeline with a distribution configuration to define how you would like to deploy your image.

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"

cfnImagePipeline := awscdk.Aws_imagebuilder.NewCfnImagePipeline(this, jsii.String("MyCfnImagePipeline"), &cfnImagePipelineProps{
	infrastructureConfigurationArn: jsii.String("infrastructureConfigurationArn"),
	name: jsii.String("name"),

	// the properties below are optional
	containerRecipeArn: jsii.String("containerRecipeArn"),
	description: jsii.String("description"),
	distributionConfigurationArn: jsii.String("distributionConfigurationArn"),
	enhancedImageMetadataEnabled: jsii.Boolean(false),
	imageRecipeArn: jsii.String("imageRecipeArn"),
	imageTestsConfiguration: &imageTestsConfigurationProperty{
		imageTestsEnabled: jsii.Boolean(false),
		timeoutMinutes: jsii.Number(123),
	},
	schedule: &scheduleProperty{
		pipelineExecutionStartCondition: jsii.String("pipelineExecutionStartCondition"),
		scheduleExpression: jsii.String("scheduleExpression"),
	},
	status: jsii.String("status"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
})

func NewCfnImagePipeline

func NewCfnImagePipeline(scope awscdk.Construct, id *string, props *CfnImagePipelineProps) CfnImagePipeline

Create a new `AWS::ImageBuilder::ImagePipeline`.

type CfnImagePipelineProps

type CfnImagePipelineProps struct {
	// The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.
	InfrastructureConfigurationArn *string `field:"required" json:"infrastructureConfigurationArn" yaml:"infrastructureConfigurationArn"`
	// The name of the image pipeline.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The Amazon Resource Name (ARN) of the container recipe that is used for this pipeline.
	ContainerRecipeArn *string `field:"optional" json:"containerRecipeArn" yaml:"containerRecipeArn"`
	// The description of this image pipeline.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.
	DistributionConfigurationArn *string `field:"optional" json:"distributionConfigurationArn" yaml:"distributionConfigurationArn"`
	// Collects additional information about the image being created, including the operating system (OS) version and package list.
	//
	// This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.
	EnhancedImageMetadataEnabled interface{} `field:"optional" json:"enhancedImageMetadataEnabled" yaml:"enhancedImageMetadataEnabled"`
	// The Amazon Resource Name (ARN) of the image recipe associated with this image pipeline.
	ImageRecipeArn *string `field:"optional" json:"imageRecipeArn" yaml:"imageRecipeArn"`
	// The configuration of the image tests that run after image creation to ensure the quality of the image that was created.
	ImageTestsConfiguration interface{} `field:"optional" json:"imageTestsConfiguration" yaml:"imageTestsConfiguration"`
	// The schedule of the image pipeline.
	//
	// A schedule configures how often and when a pipeline automatically creates a new image.
	Schedule interface{} `field:"optional" json:"schedule" yaml:"schedule"`
	// The status of the image pipeline.
	Status *string `field:"optional" json:"status" yaml:"status"`
	// The tags of this image pipeline.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnImagePipeline`.

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"

cfnImagePipelineProps := &cfnImagePipelineProps{
	infrastructureConfigurationArn: jsii.String("infrastructureConfigurationArn"),
	name: jsii.String("name"),

	// the properties below are optional
	containerRecipeArn: jsii.String("containerRecipeArn"),
	description: jsii.String("description"),
	distributionConfigurationArn: jsii.String("distributionConfigurationArn"),
	enhancedImageMetadataEnabled: jsii.Boolean(false),
	imageRecipeArn: jsii.String("imageRecipeArn"),
	imageTestsConfiguration: &imageTestsConfigurationProperty{
		imageTestsEnabled: jsii.Boolean(false),
		timeoutMinutes: jsii.Number(123),
	},
	schedule: &scheduleProperty{
		pipelineExecutionStartCondition: jsii.String("pipelineExecutionStartCondition"),
		scheduleExpression: jsii.String("scheduleExpression"),
	},
	status: jsii.String("status"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
}

type CfnImagePipeline_ImageTestsConfigurationProperty

type CfnImagePipeline_ImageTestsConfigurationProperty struct {
	// Defines if tests should be executed when building this image.
	//
	// For example, `true` or `false` .
	ImageTestsEnabled interface{} `field:"optional" json:"imageTestsEnabled" yaml:"imageTestsEnabled"`
	// The maximum time in minutes that tests are permitted to run.
	TimeoutMinutes *float64 `field:"optional" json:"timeoutMinutes" yaml:"timeoutMinutes"`
}

When you create an image or container recipe with Image Builder , you can add the build or test components that your image pipeline uses to create the final image.

You must have at least one build component to create a recipe, but test components are not required. Your pipeline runs tests after it builds the image, to ensure that the target image is functional and can be used reliably for launching Amazon EC2 instances.

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"

imageTestsConfigurationProperty := &imageTestsConfigurationProperty{
	imageTestsEnabled: jsii.Boolean(false),
	timeoutMinutes: jsii.Number(123),
}

type CfnImagePipeline_ScheduleProperty

type CfnImagePipeline_ScheduleProperty struct {
	// The condition configures when the pipeline should trigger a new image build.
	//
	// When the `pipelineExecutionStartCondition` is set to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE` , and you use semantic version filters on the base image or components in your image recipe, Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter. When it is set to `EXPRESSION_MATCH_ONLY` , it will build a new image every time the CRON expression matches the current time. For semantic version syntax, see [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) in the *Image Builder API Reference* .
	PipelineExecutionStartCondition *string `field:"optional" json:"pipelineExecutionStartCondition" yaml:"pipelineExecutionStartCondition"`
	// The cron expression determines how often EC2 Image Builder evaluates your `pipelineExecutionStartCondition` .
	//
	// For information on how to format a cron expression in Image Builder, see [Use cron expressions in EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html) .
	ScheduleExpression *string `field:"optional" json:"scheduleExpression" yaml:"scheduleExpression"`
}

A schedule configures how often and when a pipeline will automatically create a new image.

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"

scheduleProperty := &scheduleProperty{
	pipelineExecutionStartCondition: jsii.String("pipelineExecutionStartCondition"),
	scheduleExpression: jsii.String("scheduleExpression"),
}

type CfnImageProps

type CfnImageProps struct {
	// The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.
	InfrastructureConfigurationArn *string `field:"required" json:"infrastructureConfigurationArn" yaml:"infrastructureConfigurationArn"`
	// The Amazon Resource Name (ARN) of the container recipe that is used for this pipeline.
	ContainerRecipeArn *string `field:"optional" json:"containerRecipeArn" yaml:"containerRecipeArn"`
	// The Amazon Resource Name (ARN) of the distribution configuration.
	DistributionConfigurationArn *string `field:"optional" json:"distributionConfigurationArn" yaml:"distributionConfigurationArn"`
	// Collects additional information about the image being created, including the operating system (OS) version and package list.
	//
	// This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.
	EnhancedImageMetadataEnabled interface{} `field:"optional" json:"enhancedImageMetadataEnabled" yaml:"enhancedImageMetadataEnabled"`
	// The Amazon Resource Name (ARN) of the image recipe.
	ImageRecipeArn *string `field:"optional" json:"imageRecipeArn" yaml:"imageRecipeArn"`
	// The configuration settings for your image test components, which includes a toggle that allows you to turn off tests, and a timeout setting.
	ImageTestsConfiguration interface{} `field:"optional" json:"imageTestsConfiguration" yaml:"imageTestsConfiguration"`
	// The tags of the image.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnImage`.

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"

cfnImageProps := &cfnImageProps{
	infrastructureConfigurationArn: jsii.String("infrastructureConfigurationArn"),

	// the properties below are optional
	containerRecipeArn: jsii.String("containerRecipeArn"),
	distributionConfigurationArn: jsii.String("distributionConfigurationArn"),
	enhancedImageMetadataEnabled: jsii.Boolean(false),
	imageRecipeArn: jsii.String("imageRecipeArn"),
	imageTestsConfiguration: &imageTestsConfigurationProperty{
		imageTestsEnabled: jsii.Boolean(false),
		timeoutMinutes: jsii.Number(123),
	},
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
}

type CfnImageRecipe

type CfnImageRecipe interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration.
	//
	// Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.
	AdditionalInstanceConfiguration() interface{}
	SetAdditionalInstanceConfiguration(val interface{})
	// Returns the Amazon Resource Name (ARN) of the image recipe.
	//
	// For example, `arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/mybasicrecipe/2019.12.03` .
	AttrArn() *string
	// The name of the image recipe.
	AttrName() *string
	// The block device mappings to apply when creating images from this recipe.
	BlockDeviceMappings() interface{}
	SetBlockDeviceMappings(val interface{})
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// The components of the image recipe.
	//
	// Components are orchestration documents that define a sequence of steps for downloading, installing, configuring, and testing software packages. They also define validation and security hardening steps. A component is defined using a YAML document format.
	Components() interface{}
	SetComponents(val interface{})
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The description of the image recipe.
	Description() *string
	SetDescription(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of the image recipe.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The parent image of the image recipe.
	//
	// The string must be either an Image ARN or an AMI ID.
	ParentImage() *string
	SetParentImage(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The tags of the image recipe.
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// The semantic version of the image recipe.
	Version() *string
	SetVersion(val *string)
	// The working directory to be used during build and test workflows.
	WorkingDirectory() *string
	SetWorkingDirectory(val *string)
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::ImageRecipe`.

An Image Builder image recipe is a document that defines the base image and the components to be applied to the base image to produce the desired configuration for the output image. You can use an image recipe to duplicate builds. Image Builder image recipes can be shared, branched, and edited using the console wizard, the AWS CLI , or the API. You can use image recipes with your version control software to maintain shareable versioned image recipes.

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"

cfnImageRecipe := awscdk.Aws_imagebuilder.NewCfnImageRecipe(this, jsii.String("MyCfnImageRecipe"), &cfnImageRecipeProps{
	components: []interface{}{
		&componentConfigurationProperty{
			componentArn: jsii.String("componentArn"),
			parameters: []interface{}{
				&componentParameterProperty{
					name: jsii.String("name"),
					value: []*string{
						jsii.String("value"),
					},
				},
			},
		},
	},
	name: jsii.String("name"),
	parentImage: jsii.String("parentImage"),
	version: jsii.String("version"),

	// the properties below are optional
	additionalInstanceConfiguration: &additionalInstanceConfigurationProperty{
		systemsManagerAgent: &systemsManagerAgentProperty{
			uninstallAfterBuild: jsii.Boolean(false),
		},
		userDataOverride: jsii.String("userDataOverride"),
	},
	blockDeviceMappings: []interface{}{
		&instanceBlockDeviceMappingProperty{
			deviceName: jsii.String("deviceName"),
			ebs: &ebsInstanceBlockDeviceSpecificationProperty{
				deleteOnTermination: jsii.Boolean(false),
				encrypted: jsii.Boolean(false),
				iops: jsii.Number(123),
				kmsKeyId: jsii.String("kmsKeyId"),
				snapshotId: jsii.String("snapshotId"),
				throughput: jsii.Number(123),
				volumeSize: jsii.Number(123),
				volumeType: jsii.String("volumeType"),
			},
			noDevice: jsii.String("noDevice"),
			virtualName: jsii.String("virtualName"),
		},
	},
	description: jsii.String("description"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	workingDirectory: jsii.String("workingDirectory"),
})

func NewCfnImageRecipe

func NewCfnImageRecipe(scope awscdk.Construct, id *string, props *CfnImageRecipeProps) CfnImageRecipe

Create a new `AWS::ImageBuilder::ImageRecipe`.

type CfnImageRecipeProps

type CfnImageRecipeProps struct {
	// The components of the image recipe.
	//
	// Components are orchestration documents that define a sequence of steps for downloading, installing, configuring, and testing software packages. They also define validation and security hardening steps. A component is defined using a YAML document format.
	Components interface{} `field:"required" json:"components" yaml:"components"`
	// The name of the image recipe.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The parent image of the image recipe.
	//
	// The string must be either an Image ARN or an AMI ID.
	ParentImage *string `field:"required" json:"parentImage" yaml:"parentImage"`
	// The semantic version of the image recipe.
	Version *string `field:"required" json:"version" yaml:"version"`
	// Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration.
	//
	// Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.
	AdditionalInstanceConfiguration interface{} `field:"optional" json:"additionalInstanceConfiguration" yaml:"additionalInstanceConfiguration"`
	// The block device mappings to apply when creating images from this recipe.
	BlockDeviceMappings interface{} `field:"optional" json:"blockDeviceMappings" yaml:"blockDeviceMappings"`
	// The description of the image recipe.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The tags of the image recipe.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
	// The working directory to be used during build and test workflows.
	WorkingDirectory *string `field:"optional" json:"workingDirectory" yaml:"workingDirectory"`
}

Properties for defining a `CfnImageRecipe`.

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"

cfnImageRecipeProps := &cfnImageRecipeProps{
	components: []interface{}{
		&componentConfigurationProperty{
			componentArn: jsii.String("componentArn"),
			parameters: []interface{}{
				&componentParameterProperty{
					name: jsii.String("name"),
					value: []*string{
						jsii.String("value"),
					},
				},
			},
		},
	},
	name: jsii.String("name"),
	parentImage: jsii.String("parentImage"),
	version: jsii.String("version"),

	// the properties below are optional
	additionalInstanceConfiguration: &additionalInstanceConfigurationProperty{
		systemsManagerAgent: &systemsManagerAgentProperty{
			uninstallAfterBuild: jsii.Boolean(false),
		},
		userDataOverride: jsii.String("userDataOverride"),
	},
	blockDeviceMappings: []interface{}{
		&instanceBlockDeviceMappingProperty{
			deviceName: jsii.String("deviceName"),
			ebs: &ebsInstanceBlockDeviceSpecificationProperty{
				deleteOnTermination: jsii.Boolean(false),
				encrypted: jsii.Boolean(false),
				iops: jsii.Number(123),
				kmsKeyId: jsii.String("kmsKeyId"),
				snapshotId: jsii.String("snapshotId"),
				throughput: jsii.Number(123),
				volumeSize: jsii.Number(123),
				volumeType: jsii.String("volumeType"),
			},
			noDevice: jsii.String("noDevice"),
			virtualName: jsii.String("virtualName"),
		},
	},
	description: jsii.String("description"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	workingDirectory: jsii.String("workingDirectory"),
}

type CfnImageRecipe_AdditionalInstanceConfigurationProperty

type CfnImageRecipe_AdditionalInstanceConfigurationProperty struct {
	// Contains settings for the Systems Manager agent on your build instance.
	SystemsManagerAgent interface{} `field:"optional" json:"systemsManagerAgent" yaml:"systemsManagerAgent"`
	// Use this property to provide commands or a command script to run when you launch your build instance.
	//
	// The userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre-installed on your base image.
	//
	// > The user data is always base 64 encoded. For example, the following commands are encoded as `IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$` :
	// >
	// > *#!/bin/bash*
	// >
	// > mkdir -p /var/bb/
	// >
	// > touch /var.
	UserDataOverride *string `field:"optional" json:"userDataOverride" yaml:"userDataOverride"`
}

In addition to your infrastructure configuration, these settings provide an extra layer of control over your build instances.

You can also specify commands to run on launch for all of your build instances.

Image Builder does not automatically install the Systems Manager agent on Windows instances. If your base image includes the Systems Manager agent, then the AMI that you create will also include the agent. For Linux instances, if the base image does not already include the Systems Manager agent, Image Builder installs it. For Linux instances where Image Builder installs the Systems Manager agent, you can choose whether to keep it for the AMI that you create.

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"

additionalInstanceConfigurationProperty := &additionalInstanceConfigurationProperty{
	systemsManagerAgent: &systemsManagerAgentProperty{
		uninstallAfterBuild: jsii.Boolean(false),
	},
	userDataOverride: jsii.String("userDataOverride"),
}

type CfnImageRecipe_ComponentConfigurationProperty

type CfnImageRecipe_ComponentConfigurationProperty struct {
	// The Amazon Resource Name (ARN) of the component.
	ComponentArn *string `field:"optional" json:"componentArn" yaml:"componentArn"`
	// A group of parameter settings that are used to configure the component for a specific recipe.
	Parameters interface{} `field:"optional" json:"parameters" yaml:"parameters"`
}

Configuration details of the component.

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"

componentConfigurationProperty := &componentConfigurationProperty{
	componentArn: jsii.String("componentArn"),
	parameters: []interface{}{
		&componentParameterProperty{
			name: jsii.String("name"),
			value: []*string{
				jsii.String("value"),
			},
		},
	},
}

type CfnImageRecipe_ComponentParameterProperty

type CfnImageRecipe_ComponentParameterProperty struct {
	// The name of the component parameter to set.
	Name *string `field:"required" json:"name" yaml:"name"`
	// Sets the value for the named component parameter.
	Value *[]*string `field:"required" json:"value" yaml:"value"`
}

Contains a key/value pair that sets the named component parameter.

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"

componentParameterProperty := &componentParameterProperty{
	name: jsii.String("name"),
	value: []*string{
		jsii.String("value"),
	},
}

type CfnImageRecipe_EbsInstanceBlockDeviceSpecificationProperty

type CfnImageRecipe_EbsInstanceBlockDeviceSpecificationProperty struct {
	// Configures delete on termination of the associated device.
	DeleteOnTermination interface{} `field:"optional" json:"deleteOnTermination" yaml:"deleteOnTermination"`
	// Use to configure device encryption.
	Encrypted interface{} `field:"optional" json:"encrypted" yaml:"encrypted"`
	// Use to configure device IOPS.
	Iops *float64 `field:"optional" json:"iops" yaml:"iops"`
	// Use to configure the KMS key to use when encrypting the device.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// The snapshot that defines the device contents.
	SnapshotId *string `field:"optional" json:"snapshotId" yaml:"snapshotId"`
	// *For GP3 volumes only* – The throughput in MiB/s that the volume supports.
	Throughput *float64 `field:"optional" json:"throughput" yaml:"throughput"`
	// Overrides the volume size of the device.
	VolumeSize *float64 `field:"optional" json:"volumeSize" yaml:"volumeSize"`
	// Overrides the volume type of the device.
	VolumeType *string `field:"optional" json:"volumeType" yaml:"volumeType"`
}

The image recipe EBS instance block device specification includes the Amazon EBS-specific block device mapping specifications for the image.

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"

ebsInstanceBlockDeviceSpecificationProperty := &ebsInstanceBlockDeviceSpecificationProperty{
	deleteOnTermination: jsii.Boolean(false),
	encrypted: jsii.Boolean(false),
	iops: jsii.Number(123),
	kmsKeyId: jsii.String("kmsKeyId"),
	snapshotId: jsii.String("snapshotId"),
	throughput: jsii.Number(123),
	volumeSize: jsii.Number(123),
	volumeType: jsii.String("volumeType"),
}

type CfnImageRecipe_InstanceBlockDeviceMappingProperty

type CfnImageRecipe_InstanceBlockDeviceMappingProperty struct {
	// The device to which these mappings apply.
	DeviceName *string `field:"optional" json:"deviceName" yaml:"deviceName"`
	// Use to manage Amazon EBS-specific configuration for this mapping.
	Ebs interface{} `field:"optional" json:"ebs" yaml:"ebs"`
	// Enter an empty string to remove a mapping from the parent image.
	//
	// The following is an example of an empty string value in the `NoDevice` field.
	//
	// `NoDevice:""`.
	NoDevice *string `field:"optional" json:"noDevice" yaml:"noDevice"`
	// Manages the instance ephemeral devices.
	VirtualName *string `field:"optional" json:"virtualName" yaml:"virtualName"`
}

Defines block device mappings for the instance used to configure your image.

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"

instanceBlockDeviceMappingProperty := &instanceBlockDeviceMappingProperty{
	deviceName: jsii.String("deviceName"),
	ebs: &ebsInstanceBlockDeviceSpecificationProperty{
		deleteOnTermination: jsii.Boolean(false),
		encrypted: jsii.Boolean(false),
		iops: jsii.Number(123),
		kmsKeyId: jsii.String("kmsKeyId"),
		snapshotId: jsii.String("snapshotId"),
		throughput: jsii.Number(123),
		volumeSize: jsii.Number(123),
		volumeType: jsii.String("volumeType"),
	},
	noDevice: jsii.String("noDevice"),
	virtualName: jsii.String("virtualName"),
}

type CfnImageRecipe_SystemsManagerAgentProperty

type CfnImageRecipe_SystemsManagerAgentProperty struct {
	// Controls whether the Systems Manager agent is removed from your final build image, prior to creating the new AMI.
	//
	// If this is set to true, then the agent is removed from the final image. If it's set to false, then the agent is left in, so that it is included in the new AMI. The default value is false.
	UninstallAfterBuild interface{} `field:"optional" json:"uninstallAfterBuild" yaml:"uninstallAfterBuild"`
}

Contains settings for the Systems Manager agent on your build instance.

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"

systemsManagerAgentProperty := &systemsManagerAgentProperty{
	uninstallAfterBuild: jsii.Boolean(false),
}

type CfnImage_ImageTestsConfigurationProperty

type CfnImage_ImageTestsConfigurationProperty struct {
	// Determines if tests should run after building the image.
	//
	// Image Builder defaults to enable tests to run following the image build, before image distribution.
	ImageTestsEnabled interface{} `field:"optional" json:"imageTestsEnabled" yaml:"imageTestsEnabled"`
	// The maximum time in minutes that tests are permitted to run.
	TimeoutMinutes *float64 `field:"optional" json:"timeoutMinutes" yaml:"timeoutMinutes"`
}

When you create an image or container recipe with Image Builder , you can add the build or test components that are used to create the final image.

You must have at least one build component to create a recipe, but test components are not required. If you have added tests, they run after the image is created, to ensure that the target image is functional and can be used reliably for launching Amazon EC2 instances.

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"

imageTestsConfigurationProperty := &imageTestsConfigurationProperty{
	imageTestsEnabled: jsii.Boolean(false),
	timeoutMinutes: jsii.Number(123),
}

type CfnInfrastructureConfiguration

type CfnInfrastructureConfiguration interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Returns the Amazon Resource Name (ARN) of the infrastructure configuration.
	//
	// The following pattern is applied: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:\d{12}|aws):(?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|\d+)\.(?:x|\d+)\.(?:x|\d+))(?:/\d+)?)?$` .
	AttrArn() *string
	// The name of the infrastructure configuration.
	AttrName() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The description of the infrastructure configuration.
	Description() *string
	SetDescription(val *string)
	// The instance metadata option settings for the infrastructure configuration.
	InstanceMetadataOptions() interface{}
	SetInstanceMetadataOptions(val interface{})
	// The instance profile of the infrastructure configuration.
	InstanceProfileName() *string
	SetInstanceProfileName(val *string)
	// The instance types of the infrastructure configuration.
	InstanceTypes() *[]*string
	SetInstanceTypes(val *[]*string)
	// The Amazon EC2 key pair of the infrastructure configuration.
	KeyPair() *string
	SetKeyPair(val *string)
	// The logging configuration defines where Image Builder uploads your logs.
	Logging() interface{}
	SetLogging(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of the infrastructure configuration.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The tags attached to the resource created by Image Builder.
	ResourceTags() interface{}
	SetResourceTags(val interface{})
	// The security group IDs of the infrastructure configuration.
	SecurityGroupIds() *[]*string
	SetSecurityGroupIds(val *[]*string)
	// The Amazon Resource Name (ARN) of the SNS topic for the infrastructure configuration.
	SnsTopicArn() *string
	SetSnsTopicArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The subnet ID of the infrastructure configuration.
	SubnetId() *string
	SetSubnetId(val *string)
	// The tags of the infrastructure configuration.
	Tags() awscdk.TagManager
	// The terminate instance on failure configuration of the infrastructure configuration.
	TerminateInstanceOnFailure() interface{}
	SetTerminateInstanceOnFailure(val interface{})
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ImageBuilder::InfrastructureConfiguration`.

The infrastructure configuration allows you to specify the infrastructure within which to build and test your image. In the infrastructure configuration, you can specify instance types, subnets, and security groups to associate with your instance. You can also associate an Amazon EC2 key pair with the instance used to build your image. This allows you to log on to your instance to troubleshoot if your build fails and you set terminateInstanceOnFailure to false.

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"

cfnInfrastructureConfiguration := awscdk.Aws_imagebuilder.NewCfnInfrastructureConfiguration(this, jsii.String("MyCfnInfrastructureConfiguration"), &cfnInfrastructureConfigurationProps{
	instanceProfileName: jsii.String("instanceProfileName"),
	name: jsii.String("name"),

	// the properties below are optional
	description: jsii.String("description"),
	instanceMetadataOptions: &instanceMetadataOptionsProperty{
		httpPutResponseHopLimit: jsii.Number(123),
		httpTokens: jsii.String("httpTokens"),
	},
	instanceTypes: []*string{
		jsii.String("instanceTypes"),
	},
	keyPair: jsii.String("keyPair"),
	logging: &loggingProperty{
		s3Logs: &s3LogsProperty{
			s3BucketName: jsii.String("s3BucketName"),
			s3KeyPrefix: jsii.String("s3KeyPrefix"),
		},
	},
	resourceTags: map[string]*string{
		"resourceTagsKey": jsii.String("resourceTags"),
	},
	securityGroupIds: []*string{
		jsii.String("securityGroupIds"),
	},
	snsTopicArn: jsii.String("snsTopicArn"),
	subnetId: jsii.String("subnetId"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	terminateInstanceOnFailure: jsii.Boolean(false),
})

func NewCfnInfrastructureConfiguration

func NewCfnInfrastructureConfiguration(scope awscdk.Construct, id *string, props *CfnInfrastructureConfigurationProps) CfnInfrastructureConfiguration

Create a new `AWS::ImageBuilder::InfrastructureConfiguration`.

type CfnInfrastructureConfigurationProps

type CfnInfrastructureConfigurationProps struct {
	// The instance profile of the infrastructure configuration.
	InstanceProfileName *string `field:"required" json:"instanceProfileName" yaml:"instanceProfileName"`
	// The name of the infrastructure configuration.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The description of the infrastructure configuration.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The instance metadata option settings for the infrastructure configuration.
	InstanceMetadataOptions interface{} `field:"optional" json:"instanceMetadataOptions" yaml:"instanceMetadataOptions"`
	// The instance types of the infrastructure configuration.
	InstanceTypes *[]*string `field:"optional" json:"instanceTypes" yaml:"instanceTypes"`
	// The Amazon EC2 key pair of the infrastructure configuration.
	KeyPair *string `field:"optional" json:"keyPair" yaml:"keyPair"`
	// The logging configuration defines where Image Builder uploads your logs.
	Logging interface{} `field:"optional" json:"logging" yaml:"logging"`
	// The tags attached to the resource created by Image Builder.
	ResourceTags interface{} `field:"optional" json:"resourceTags" yaml:"resourceTags"`
	// The security group IDs of the infrastructure configuration.
	SecurityGroupIds *[]*string `field:"optional" json:"securityGroupIds" yaml:"securityGroupIds"`
	// The Amazon Resource Name (ARN) of the SNS topic for the infrastructure configuration.
	SnsTopicArn *string `field:"optional" json:"snsTopicArn" yaml:"snsTopicArn"`
	// The subnet ID of the infrastructure configuration.
	SubnetId *string `field:"optional" json:"subnetId" yaml:"subnetId"`
	// The tags of the infrastructure configuration.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
	// The terminate instance on failure configuration of the infrastructure configuration.
	TerminateInstanceOnFailure interface{} `field:"optional" json:"terminateInstanceOnFailure" yaml:"terminateInstanceOnFailure"`
}

Properties for defining a `CfnInfrastructureConfiguration`.

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"

cfnInfrastructureConfigurationProps := &cfnInfrastructureConfigurationProps{
	instanceProfileName: jsii.String("instanceProfileName"),
	name: jsii.String("name"),

	// the properties below are optional
	description: jsii.String("description"),
	instanceMetadataOptions: &instanceMetadataOptionsProperty{
		httpPutResponseHopLimit: jsii.Number(123),
		httpTokens: jsii.String("httpTokens"),
	},
	instanceTypes: []*string{
		jsii.String("instanceTypes"),
	},
	keyPair: jsii.String("keyPair"),
	logging: &loggingProperty{
		s3Logs: &s3LogsProperty{
			s3BucketName: jsii.String("s3BucketName"),
			s3KeyPrefix: jsii.String("s3KeyPrefix"),
		},
	},
	resourceTags: map[string]*string{
		"resourceTagsKey": jsii.String("resourceTags"),
	},
	securityGroupIds: []*string{
		jsii.String("securityGroupIds"),
	},
	snsTopicArn: jsii.String("snsTopicArn"),
	subnetId: jsii.String("subnetId"),
	tags: map[string]*string{
		"tagsKey": jsii.String("tags"),
	},
	terminateInstanceOnFailure: jsii.Boolean(false),
}

type CfnInfrastructureConfiguration_InstanceMetadataOptionsProperty

type CfnInfrastructureConfiguration_InstanceMetadataOptionsProperty struct {
	// Limit the number of hops that an instance metadata request can traverse to reach its destination.
	//
	// The default is one hop. However, if HTTP tokens are required, container image builds need a minimum of two hops.
	HttpPutResponseHopLimit *float64 `field:"optional" json:"httpPutResponseHopLimit" yaml:"httpPutResponseHopLimit"`
	// Indicates whether a signed token header is required for instance metadata retrieval requests.
	//
	// The values affect the response as follows:
	//
	// - *required* – When you retrieve the IAM role credentials, version 2.0 credentials are returned in all cases.
	// - *optional* – You can include a signed token header in your request to retrieve instance metadata, or you can leave it out. If you include it, version 2.0 credentials are returned for the IAM role. Otherwise, version 1.0 credentials are returned.
	//
	// The default setting is *optional* .
	HttpTokens *string `field:"optional" json:"httpTokens" yaml:"httpTokens"`
}

The instance metadata options that apply to the HTTP requests that pipeline builds use to launch EC2 build and test instances.

For more information about instance metadata options, see [Configure the instance metadata options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html) in the **Amazon EC2 User Guide** for Linux instances, or [Configure the instance metadata options](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html) in the **Amazon EC2 Windows Guide** for Windows instances.

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"

instanceMetadataOptionsProperty := &instanceMetadataOptionsProperty{
	httpPutResponseHopLimit: jsii.Number(123),
	httpTokens: jsii.String("httpTokens"),
}

type CfnInfrastructureConfiguration_LoggingProperty

type CfnInfrastructureConfiguration_LoggingProperty struct {
	// The Amazon S3 logging configuration.
	S3Logs interface{} `field:"optional" json:"s3Logs" yaml:"s3Logs"`
}

Logging configuration defines where Image Builder uploads your logs.

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"

loggingProperty := &loggingProperty{
	s3Logs: &s3LogsProperty{
		s3BucketName: jsii.String("s3BucketName"),
		s3KeyPrefix: jsii.String("s3KeyPrefix"),
	},
}

type CfnInfrastructureConfiguration_S3LogsProperty

type CfnInfrastructureConfiguration_S3LogsProperty struct {
	// The S3 bucket in which to store the logs.
	S3BucketName *string `field:"optional" json:"s3BucketName" yaml:"s3BucketName"`
	// The Amazon S3 path to the bucket where the logs are stored.
	S3KeyPrefix *string `field:"optional" json:"s3KeyPrefix" yaml:"s3KeyPrefix"`
}

Amazon S3 logging configuration.

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"

s3LogsProperty := &s3LogsProperty{
	s3BucketName: jsii.String("s3BucketName"),
	s3KeyPrefix: jsii.String("s3KeyPrefix"),
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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