@aws-cdk/aws-imagebuilder-alpha 2.232.2-alpha.0 → 2.234.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +1158 -1026
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +33 -29
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/README.md +20 -20
- package/lib/amazon-managed-component.d.ts +112 -0
- package/lib/amazon-managed-component.js +228 -0
- package/lib/amazon-managed-image.js +1 -1
- package/lib/amazon-managed-workflow.d.ts +70 -0
- package/lib/amazon-managed-workflow.js +115 -0
- package/lib/base-image.js +3 -3
- package/lib/component.d.ts +27 -112
- package/lib/component.js +26 -289
- package/lib/container-recipe.js +4 -4
- package/lib/distribution-configuration.js +2 -2
- package/lib/image-pipeline.js +1 -1
- package/lib/image-recipe.js +1 -1
- package/lib/image.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/infrastructure-configuration.js +1 -1
- package/lib/lifecycle-policy.js +1 -1
- package/lib/os-version.js +1 -1
- package/lib/recipe-base.js +1 -1
- package/lib/workflow.d.ts +0 -61
- package/lib/workflow.js +6 -100
- package/package.json +6 -6
package/.jsii
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"yaml": "1.10.2"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"aws-cdk-lib": "^2.
|
|
14
|
+
"aws-cdk-lib": "^2.234.0",
|
|
15
15
|
"constructs": "^10.0.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencyClosure": {
|
|
@@ -645,6 +645,19 @@
|
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
647
|
},
|
|
648
|
+
"aws-cdk-lib.aws_cases": {
|
|
649
|
+
"targets": {
|
|
650
|
+
"dotnet": {
|
|
651
|
+
"namespace": "Amazon.CDK.AWS.Cases"
|
|
652
|
+
},
|
|
653
|
+
"java": {
|
|
654
|
+
"package": "software.amazon.awscdk.services.cases"
|
|
655
|
+
},
|
|
656
|
+
"python": {
|
|
657
|
+
"module": "aws_cdk.aws_cases"
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
},
|
|
648
661
|
"aws-cdk-lib.aws_cassandra": {
|
|
649
662
|
"targets": {
|
|
650
663
|
"dotnet": {
|
|
@@ -4609,6 +4622,22 @@
|
|
|
4609
4622
|
}
|
|
4610
4623
|
}
|
|
4611
4624
|
},
|
|
4625
|
+
"aws-cdk-lib.interfaces.aws_cases": {
|
|
4626
|
+
"targets": {
|
|
4627
|
+
"dotnet": {
|
|
4628
|
+
"namespace": "Amazon.CDK.Interfaces.Cases"
|
|
4629
|
+
},
|
|
4630
|
+
"go": {
|
|
4631
|
+
"packageName": "interfacesawscases"
|
|
4632
|
+
},
|
|
4633
|
+
"java": {
|
|
4634
|
+
"package": "software.amazon.awscdk.interfaces.cases"
|
|
4635
|
+
},
|
|
4636
|
+
"python": {
|
|
4637
|
+
"module": "aws_cdk.interfaces.aws_cases"
|
|
4638
|
+
}
|
|
4639
|
+
}
|
|
4640
|
+
},
|
|
4612
4641
|
"aws-cdk-lib.interfaces.aws_cassandra": {
|
|
4613
4642
|
"targets": {
|
|
4614
4643
|
"dotnet": {
|
|
@@ -8444,7 +8473,7 @@
|
|
|
8444
8473
|
"stability": "experimental"
|
|
8445
8474
|
},
|
|
8446
8475
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8447
|
-
"jsiiVersion": "5.9.
|
|
8476
|
+
"jsiiVersion": "5.9.22 (build b81c634)",
|
|
8448
8477
|
"keywords": [
|
|
8449
8478
|
"aws",
|
|
8450
8479
|
"cdk",
|
|
@@ -8465,7 +8494,7 @@
|
|
|
8465
8494
|
},
|
|
8466
8495
|
"name": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8467
8496
|
"readme": {
|
|
8468
|
-
"markdown": "# EC2 Image Builder Construct Library\n\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[Amazon EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) is a\nfully managed AWS service that helps you automate the creation, management, and deployment of customized, secure, and\nup-to-date server images. You can use Image Builder to create Amazon Machine Images (AMIs) and container images for use\nacross AWS Regions.\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. It allows you to define\nImage Builder pipelines, images, recipes, components, workflows, and lifecycle policies.\nA component defines the sequence of steps required to customize an instance during image creation (build component) or\ntest an instance launched from the created image (test component). Components are created from declarative YAML or JSON\ndocuments that describe runtime configuration for building, validating, or testing instances. Components are included\nwhen added to the image recipe or container recipe for an image build.\n\nEC2 Image Builder supports AWS-managed components for common tasks, AWS Marketplace components, and custom components\nthat you create. Components run during specific workflow phases: build and validate phases during the build stage, and\ntest phase during the test stage.\n\n### Image Pipeline\n\nAn image pipeline provides the automation framework for building secure AMIs and container images. The pipeline\norchestrates the entire image creation process by combining an image recipe or container recipe with infrastructure\nconfiguration and distribution configuration. Pipelines can run on a schedule or be triggered manually, and they manage\nthe build, test, and distribution phases automatically.\n\n#### Image Pipeline Basic Usage\n\nCreate a simple AMI pipeline with just an image recipe:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\nconst imagePipeline = new imagebuilder.ImagePipeline(this, 'MyImagePipeline', {\n recipe: exampleImageRecipe\n});\n```\n\nCreate a simple container pipeline with just a container recipe:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n\nconst containerPipeline = new imagebuilder.ImagePipeline(this, 'MyContainerPipeline', {\n recipe: exampleContainerRecipe\n});\n```\n\n#### Image Pipeline Scheduling\n\n##### Manual Pipeline Execution\n\nCreate a pipeline that runs only when manually triggered:\n\n```ts\nconst manualPipeline = new imagebuilder.ImagePipeline(this, 'ManualPipeline', {\n imagePipelineName: 'my-manual-pipeline',\n description: 'Pipeline triggered manually for production builds',\n recipe: exampleImageRecipe\n // No schedule property - manual execution only\n});\n\n// Grant Lambda function permission to trigger the pipeline\nmanualPipeline.grantStartExecution(lambdaRole);\n```\n\n##### Automated Pipeline Scheduling\n\nSchedule a pipeline to run automatically using cron expressions:\n\n```ts\nconst weeklyPipeline = new imagebuilder.ImagePipeline(this, 'WeeklyPipeline', {\n imagePipelineName: 'weekly-build-pipeline',\n recipe: exampleImageRecipe,\n schedule: {\n expression: events.Schedule.cron({\n minute: '0',\n hour: '6',\n weekDay: 'MON'\n })\n }\n});\n```\n\nUse rate expressions for regular intervals:\n\n```ts\nconst dailyPipeline = new imagebuilder.ImagePipeline(this, 'DailyPipeline', {\n recipe: exampleContainerRecipe,\n schedule: {\n expression: events.Schedule.rate(Duration.days(1))\n }\n});\n```\n\n##### Pipeline Schedule Configuration\n\nConfigure advanced scheduling options:\n\n```ts\nconst advancedSchedulePipeline = new imagebuilder.ImagePipeline(this, 'AdvancedSchedulePipeline', {\n recipe: exampleImageRecipe,\n schedule: {\n expression: events.Schedule.rate(Duration.days(7)),\n // Only trigger when dependencies are updated (new base images, components, etc.)\n startCondition: imagebuilder.ScheduleStartCondition.EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE,\n // Automatically disable after 3 consecutive failures\n autoDisableFailureCount: 3\n },\n // Start enabled\n status: imagebuilder.ImagePipelineStatus.ENABLED\n});\n```\n\n#### Image Pipeline Configuration\n\n##### Infrastructure and Distribution in Image Pipelines\n\nConfigure custom infrastructure and distribution settings:\n\n```ts\nconst infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {\n infrastructureConfigurationName: 'production-infrastructure',\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)\n ],\n vpc: vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }\n});\n\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');\ndistributionConfiguration.addAmiDistributions({\n amiName: 'production-ami-{{ imagebuilder:buildDate }}',\n amiTargetAccountIds: ['123456789012', '098765432109']\n});\n\nconst productionPipeline = new imagebuilder.ImagePipeline(this, 'ProductionPipeline', {\n recipe: exampleImageRecipe,\n infrastructureConfiguration: infrastructureConfiguration,\n distributionConfiguration: distributionConfiguration\n});\n```\n\n##### Pipeline Logging Configuration\n\nConfigure custom CloudWatch log groups for pipeline and image logs:\n\n```ts\nconst pipelineLogGroup = new logs.LogGroup(this, 'PipelineLogGroup', {\n logGroupName: '/custom/imagebuilder/pipeline/logs',\n retention: logs.RetentionDays.ONE_MONTH\n});\n\nconst imageLogGroup = new logs.LogGroup(this, 'ImageLogGroup', {\n logGroupName: '/custom/imagebuilder/image/logs',\n retention: logs.RetentionDays.ONE_WEEK\n});\n\nconst loggedPipeline = new imagebuilder.ImagePipeline(this, 'LoggedPipeline', {\n recipe: exampleImageRecipe,\n imagePipelineLogGroup: pipelineLogGroup,\n imageLogGroup: imageLogGroup\n});\n```\n\n##### Workflow Integration in Image Pipelines\n\nUse AWS-managed workflows for common pipeline phases:\n\n```ts\nconst workflowPipeline = new imagebuilder.ImagePipeline(this, 'WorkflowPipeline', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.AwsManagedWorkflow.buildImage(this, 'BuildWorkflow') },\n { workflow: imagebuilder.AwsManagedWorkflow.testImage(this, 'TestWorkflow') }\n ]\n});\n```\n\nFor container pipelines, use container-specific workflows:\n\n```ts\nconst containerWorkflowPipeline = new imagebuilder.ImagePipeline(this, 'ContainerWorkflowPipeline', {\n recipe: exampleContainerRecipe,\n workflows: [\n { workflow: imagebuilder.AwsManagedWorkflow.buildContainer(this, 'BuildContainer') },\n { workflow: imagebuilder.AwsManagedWorkflow.testContainer(this, 'TestContainer') },\n { workflow: imagebuilder.AwsManagedWorkflow.distributeContainer(this, 'DistributeContainer') }\n ]\n});\n```\n\n##### Advanced Features in Image Pipelines\n\nConfigure image scanning for container pipelines:\n\n```ts\nconst scanningRepository = new ecr.Repository(this, 'ScanningRepo');\n\nconst scannedContainerPipeline = new imagebuilder.ImagePipeline(this, 'ScannedContainerPipeline', {\n recipe: exampleContainerRecipe,\n imageScanningEnabled: true,\n imageScanningEcrRepository: scanningRepository,\n imageScanningEcrTags: ['security-scan', 'latest']\n});\n```\n\nControl metadata collection and testing:\n\n```ts\nconst controlledPipeline = new imagebuilder.ImagePipeline(this, 'ControlledPipeline', {\n recipe: exampleImageRecipe,\n enhancedImageMetadataEnabled: true, // Collect detailed OS and package info\n imageTestsEnabled: false // Skip testing phase for faster builds\n});\n```\n\n#### Image Pipeline Events\n\n##### Pipeline Event Handling\n\nHandle specific pipeline events:\n\n```ts\n// Monitor CVE detection\nexamplePipeline.onCVEDetected('CVEAlert', {\n target: new targets.SnsTopic(topic)\n});\n\n// Handle pipeline auto-disable events\nexamplePipeline.onImagePipelineAutoDisabled('PipelineDisabledAlert', {\n target: new targets.LambdaFunction(lambdaFunction)\n});\n```\n\n#### Importing Image Pipelines\n\nReference existing pipelines created outside CDK:\n\n```ts\n// Import by name\nconst existingPipelineByName = imagebuilder.ImagePipeline.fromImagePipelineName(\n this,\n 'ExistingPipelineByName',\n 'my-existing-pipeline'\n);\n\n// Import by ARN\nconst existingPipelineByArn = imagebuilder.ImagePipeline.fromImagePipelineArn(\n this,\n 'ExistingPipelineByArn',\n 'arn:aws:imagebuilder:us-east-1:123456789012:image-pipeline/imported-pipeline'\n);\n\n// Grant permissions to imported pipelines\nconst automationRole = new iam.Role(this, 'AutomationRole', {\n assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com')\n});\n\nexistingPipelineByName.grantStartExecution(automationRole);\nexistingPipelineByArn.grantRead(lambdaRole);\n```\n\n### Image\n\nAn image is the output resource created by Image Builder, consisting of an AMI or container image plus metadata such as\nversion, platform, and creation details. Images are used as base images for future builds and can be shared across AWS\naccounts. While images are the output from image pipeline executions, they can also be created in an ad-hoc manner\noutside a pipeline, defined as a standalone resource.\n\n#### Image Basic Usage\n\nCreate a simple AMI-based image from an image recipe:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\nconst amiImage = new imagebuilder.Image(this, 'MyAmiImage', {\n recipe: imageRecipe\n});\n```\n\nCreate a simple container image from a container recipe:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n\nconst containerImage = new imagebuilder.Image(this, 'MyContainerImage', {\n recipe: containerRecipe\n});\n```\n\n#### AWS-Managed Images\n\n##### Pre-defined OS Images\n\nUse AWS-managed images for common operating systems:\n\n```ts\n// Amazon Linux 2023 AMI for x86_64\nconst amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Ubuntu 22.04 AMI for ARM64\nconst ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.ARM64\n});\n\n// Windows Server 2022 Full AMI\nconst windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Use as base image in recipe\nconst managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {\n baseImage: amazonLinux2023Ami.toBaseImage()\n});\n```\n\n##### Custom AWS-Managed Images\n\nImport AWS-managed images by name or attributes:\n\n```ts\n// Import by name\nconst managedImageByName = imagebuilder.AmazonManagedImage.fromAmazonManagedImageName(\n this,\n 'ManagedImageByName',\n 'amazon-linux-2023-x86'\n);\n\n// Import by attributes with specific version\nconst managedImageByAttributes = imagebuilder.AmazonManagedImage.fromAmazonManagedImageAttributes(this, 'ManagedImageByAttributes', {\n imageName: 'ubuntu-server-22-lts-x86',\n imageVersion: '2024.11.25'\n});\n```\n\n#### Image Configuration\n\n##### Infrastructure and Distribution in Images\n\nConfigure custom infrastructure and distribution settings:\n\n```ts\nconst infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {\n infrastructureConfigurationName: 'production-infrastructure',\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)\n ],\n vpc: vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }\n});\n\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');\ndistributionConfiguration.addAmiDistributions({\n amiName: 'production-ami-{{ imagebuilder:buildDate }}',\n amiTargetAccountIds: ['123456789012', '098765432109']\n});\n\nconst productionImage = new imagebuilder.Image(this, 'ProductionImage', {\n recipe: exampleImageRecipe,\n infrastructureConfiguration: infrastructureConfiguration,\n distributionConfiguration: distributionConfiguration\n});\n```\n\n##### Logging Configuration\n\nConfigure custom CloudWatch log groups for image builds:\n\n```ts\nconst logGroup = new logs.LogGroup(this, 'ImageLogGroup', {\n logGroupName: '/custom/imagebuilder/image/logs',\n retention: logs.RetentionDays.ONE_MONTH\n});\n\nconst loggedImage = new imagebuilder.Image(this, 'LoggedImage', {\n recipe: exampleImageRecipe,\n logGroup: logGroup\n});\n```\n\n##### Workflow Integration in Images\n\nUse workflows for custom build, test, and distribution processes:\n\n```ts\nconst imageWithWorkflows = new imagebuilder.Image(this, 'ImageWithWorkflows', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.AwsManagedWorkflow.buildImage(this, 'BuildWorkflow') },\n { workflow: imagebuilder.AwsManagedWorkflow.testImage(this, 'TestWorkflow') }\n ]\n});\n```\n\n##### Advanced Features in Images\n\nConfigure image scanning, metadata collection, and testing:\n\n```ts\nconst scanningRepository = new ecr.Repository(this, 'ScanningRepository');\n\nconst advancedContainerImage = new imagebuilder.Image(this, 'AdvancedContainerImage', {\n recipe: exampleContainerRecipe,\n imageScanningEnabled: true,\n imageScanningEcrRepository: scanningRepository,\n imageScanningEcrTags: ['security-scan', 'latest'],\n enhancedImageMetadataEnabled: true,\n imageTestsEnabled: false // Skip testing for faster builds\n});\n```\n\n#### Importing Images\n\nReference existing images created outside CDK:\n\n```ts\n// Import by name\nconst existingImageByName = imagebuilder.Image.fromImageName(\n this,\n 'ExistingImageByName',\n 'my-existing-image'\n);\n\n// Import by ARN\nconst existingImageByArn = imagebuilder.Image.fromImageArn(\n this,\n 'ExistingImageByArn',\n 'arn:aws:imagebuilder:us-east-1:123456789012:image/imported-image/1.0.0'\n);\n\n// Import by attributes\nconst existingImageByAttributes = imagebuilder.Image.fromImageAttributes(this, 'ExistingImageByAttributes', {\n imageName: 'shared-base-image',\n imageVersion: '2024.11.25'\n});\n\n// Grant permissions to imported images\nconst role = new iam.Role(this, 'ImageAccessRole', {\n assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com')\n});\n\nexistingImageByName.grantRead(role);\nexistingImageByArn.grant(role, 'imagebuilder:GetImage', 'imagebuilder:ListImagePackages');\n```\n\n### Image Recipe\n\n#### Image Recipe Basic Usage\n\nCreate an image recipe with the required base image:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n```\n\n#### Image Recipe Base Images\n\nTo create a recipe, you have to select a base image to build and customize from. This base image can be referenced from\nvarious sources, such as from SSM parameters, AWS Marketplace products, and AMI IDs directly.\n\n##### SSM Parameters\n\nUsing SSM parameter references:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'SsmImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\n// Using an SSM parameter construct\nconst parameter = ssm.StringParameter.fromStringParameterName(\n this,\n 'BaseImageParameter',\n '/aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base'\n);\nconst windowsRecipe = new imagebuilder.ImageRecipe(this, 'WindowsImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameter(parameter)\n});\n```\n\n##### AMI IDs\n\nWhen you have a specific AMI to use:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'AmiImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromAmiId('ami-12345678')\n});\n```\n\n##### Marketplace Images\n\nFor marketplace base images:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MarketplaceImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromMarketplaceProductId('prod-1234567890abcdef0')\n});\n```\n\n#### Image Recipe Components\n\nComponents from various sources, such as custom-owned, AWS-owned, or AWS Marketplace-owned, can optionally be included\nin recipes. For parameterized components, you are able to provide the parameters to use in the recipe, which will be\napplied during the image build when executing components.\n\n##### Custom Components in Image Recipes\n\nAdd your own components to the recipe:\n\n```ts\nconst customComponent = new imagebuilder.Component(this, 'MyComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-app',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['yum install -y my-application']\n }\n }\n ]\n }\n ]\n })\n});\n\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'ComponentImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: customComponent\n }\n ]\n});\n```\n\n##### AWS-Managed Components in Image Recipes\n\nUse pre-built AWS components:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'AmazonManagedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: imagebuilder.AwsManagedComponent.updateOS(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n })\n },\n {\n component: imagebuilder.AwsManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n })\n }\n ]\n});\n```\n\n##### Component Parameters in Image Recipes\n\nPass parameters to components that accept them:\n\n```ts\nconst parameterizedComponent = imagebuilder.Component.fromComponentName(\n this,\n 'ParameterizedComponent',\n 'my-parameterized-component'\n);\n\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'ParameterizedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: parameterizedComponent,\n parameters: {\n environment: imagebuilder.ComponentParameterValue.fromString('production'),\n version: imagebuilder.ComponentParameterValue.fromString('1.0.0')\n }\n }\n ]\n});\n```\n\n#### Image Recipe Configuration\n\n##### Block Device Configuration\n\nConfigure storage for the build instance:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'BlockDeviceImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n blockDevices: [\n {\n deviceName: '/dev/sda1',\n volume: ec2.BlockDeviceVolume.ebs(100, {\n encrypted: true,\n volumeType: ec2.EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3\n })\n }\n ]\n});\n```\n\n##### AMI Tagging\n\nTag the output AMI:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'TaggedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n amiTags: {\n Environment: 'Production',\n Application: 'WebServer',\n Owner: 'DevOps Team'\n }\n});\n```\n\n### Container Recipe\n\nA container recipe is similar to an image recipe but specifically for container images. It defines the base container\nimage and components applied to produce the desired configuration for the output container image. Container recipes work\nwith Docker images from DockerHub, Amazon ECR, or Amazon-managed container images as starting points.\n\n#### Container Recipe Basic Usage\n\nCreate a container recipe with the required base image and target repository:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n```\n\n#### Container Recipe Base Images\n\n##### DockerHub Images\n\nUsing public Docker Hub images:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'DockerHubContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n```\n\n##### ECR Images\n\nUsing images from your own ECR repositories:\n\n```ts\nconst sourceRepo = ecr.Repository.fromRepositoryName(this, 'SourceRepo', 'my-base-image');\nconst targetRepo = ecr.Repository.fromRepositoryName(this, 'TargetRepo', 'my-container-repo');\n\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'EcrContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromEcr(sourceRepo, '1.0.0'),\n targetRepository: imagebuilder.Repository.fromEcr(targetRepo)\n});\n```\n\n##### ECR Public Images\n\nUsing images from Amazon ECR Public:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'EcrPublicContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromEcrPublic('amazonlinux', 'amazonlinux', '2023'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n```\n\n#### Container Recipe Components\n\n##### Custom Components in Container Recipes\n\nAdd your own components to the container recipe:\n\n```ts\nconst customComponent = new imagebuilder.Component(this, 'MyComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-app',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['yum install -y my-container-application']\n }\n }\n ]\n }\n ]\n })\n});\n\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'ComponentContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n components: [\n {\n component: customComponent\n }\n ]\n});\n```\n\n##### AWS-Managed Components in Container Recipes\n\nUse pre-built AWS components:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'AwsManagedContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n components: [\n {\n component: imagebuilder.AwsManagedComponent.updateOS(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n })\n },\n {\n component: imagebuilder.AwsManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n })\n }\n ]\n});\n```\n\n#### Container Recipe Configuration\n\n##### Custom Dockerfile\n\nProvide your own Dockerfile template:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'CustomDockerfileContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n dockerfile: imagebuilder.DockerfileData.fromInline(`\nFROM {{{ imagebuilder:parentImage }}}\nCMD [\"echo\", \"Hello, world!\"]\n{{{ imagebuilder:environments }}}\n{{{ imagebuilder:components }}}\n`)\n});\n```\n\n##### Instance Configuration\n\nConfigure the build instance:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'InstanceConfigContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n // Custom ECS-optimized AMI for building\n instanceImage: imagebuilder.ContainerInstanceImage.fromSsmParameterName(\n '/aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id'\n ),\n // Additional storage for build process\n instanceBlockDevices: [\n {\n deviceName: '/dev/xvda',\n volume: ec2.BlockDeviceVolume.ebs(50, {\n encrypted: true,\n volumeType: ec2.EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3\n })\n }\n ]\n});\n```\n\n### Component\n\nA component defines the sequence of steps required to customize an instance during image creation (build component) or\ntest an instance launched from the created image (test component). Components are created from declarative YAML or JSON\ndocuments that describe runtime configuration for building, validating, or testing instances. Components are included\nwhen added to the image recipe or container recipe for an image build.\n\nEC2 Image Builder supports AWS-managed components for common tasks, AWS Marketplace components, and custom components\nthat you create. Components run during specific workflow phases: build and validate phases during the build stage, and\ntest phase during the test stage.\n\n#### Basic Component Usage\n\nCreate a component with the required properties: platform and component data.\n\n```ts\nconst component = new imagebuilder.Component(this, 'MyComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-app',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['echo \"Installing my application...\"', 'yum update -y'],\n },\n },\n ],\n },\n ],\n }),\n});\n```\n\n#### Component Data Sources\n\n##### Inline Component Data\n\nUse `ComponentData.fromInline()` for existing YAML/JSON definitions:\n\n```ts\nconst component = new imagebuilder.Component(this, 'InlineComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromInline(`\nname: my-component\nschemaVersion: 1.0\nphases:\n - name: build\n steps:\n - name: update-os\n action: ExecuteBash\n inputs:\n commands: ['yum update -y']\n`)\n});\n```\n\n##### JSON Object Component Data\n\nMost developer-friendly approach using objects:\n\n```ts\n\nconst component = new imagebuilder.Component(this, 'JsonComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'configure-app',\n action: imagebuilder.ComponentAction.CREATE_FILE,\n inputs: {\n path: '/etc/myapp/config.json',\n content: '{\"env\": \"production\"}'\n }\n }\n ]\n }\n ]\n })\n});\n```\n\n##### Structured Component Document\n\nFor type-safe, CDK-native definitions with enhanced properties like `timeout` and `onFailure`.\n\n###### Defining a component step\n\nYou can define steps in the component which will be executed in order when the component is applied:\n\n```ts\nconst step: imagebuilder.ComponentDocumentStep = {\n name: 'configure-app',\n action: imagebuilder.ComponentAction.CREATE_FILE,\n inputs: imagebuilder.ComponentStepInputs.fromObject({\n path: '/etc/myapp/config.json',\n content: '{\"env\": \"production\"}'\n })\n};\n```\n\n###### Defining a component phase\n\nPhases group steps together, which run in sequence when building, validating or testing in the component:\n\n```ts\nconst phase: imagebuilder.ComponentDocumentPhase = {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'configure-app',\n action: imagebuilder.ComponentAction.CREATE_FILE,\n inputs: imagebuilder.ComponentStepInputs.fromObject({\n path: '/etc/myapp/config.json',\n content: '{\"env\": \"production\"}'\n })\n }\n ]\n};\n```\n\n###### Defining a component\n\nThe component data defines all steps across the provided phases to execute during the build:\n\n```ts\nconst component = new imagebuilder.Component(this, 'StructuredComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromComponentDocumentJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-with-timeout',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n timeout: Duration.minutes(10),\n onFailure: imagebuilder.ComponentOnFailure.CONTINUE,\n inputs: imagebuilder.ComponentStepInputs.fromObject({\n commands: ['./install-script.sh']\n })\n }\n ]\n }\n ]\n })\n});\n```\n\n##### S3 Component Data\n\nFor those components you want to upload or have uploaded to S3:\n\n```ts\n// Upload a local file\nconst componentFromAsset = new imagebuilder.Component(this, 'AssetComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromAsset(this, 'ComponentAsset', './my-component.yml'),\n});\n\n// Reference an existing S3 object\nconst bucket = s3.Bucket.fromBucketName(this, 'ComponentBucket', 'my-components-bucket');\nconst componentFromS3 = new imagebuilder.Component(this, 'S3Component', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromS3(bucket, 'components/my-component.yml'),\n});\n```\n\n#### Encrypt component data with a KMS key\n\nYou can encrypt component data with a KMS key, so that only principals with access to decrypt with the key are able to\naccess the component data.\n\n```ts\nconst component = new imagebuilder.Component(this, 'EncryptedComponent', {\n platform: imagebuilder.Platform.LINUX,\n kmsKey: new kms.Key(this, 'ComponentKey'),\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'secure-setup',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['echo \"This component data is encrypted with KMS\"']\n }\n }\n ]\n }\n ]\n })\n});\n```\n\n#### AWS-Managed Components\n\nAWS provides a collection of managed components for common tasks:\n\n```ts\n// Install AWS CLI v2\nconst awsCliComponent = imagebuilder.AwsManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n});\n\n// Update the operating system\nconst updateComponent = imagebuilder.AwsManagedComponent.updateOS(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n});\n\n// Reference any AWS-managed component by name\nconst customAwsComponent = imagebuilder.AwsManagedComponent.fromAwsManagedComponentName(\n this,\n 'CloudWatchAgent',\n 'amazon-cloudwatch-agent-linux'\n);\n```\n\n#### AWS Marketplace Components\n\nYou can reference AWS Marketplace components using the marketplace component name and its product ID:\n\n```ts\nconst marketplaceComponent = imagebuilder.AwsMarketplaceComponent.fromAwsMarketplaceComponentAttributes(\n this,\n 'MarketplaceComponent',\n {\n componentName: 'my-marketplace-component',\n marketplaceProductId: 'prod-1234567890abcdef0',\n }\n);\n```\n\n### Infrastructure Configuration\n\nInfrastructure configuration defines the compute resources and environment settings used during the image building\nprocess. This includes instance types, IAM instance profile, VPC settings, subnets, security groups, SNS topics for\nnotifications, logging configuration, and troubleshooting settings like whether to terminate instances on failure or\nkeep them running for debugging. These settings are applied to builds when included in an image or an image pipeline.\n\n```ts\nconst infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'InfrastructureConfiguration', {\n infrastructureConfigurationName: 'test-infrastructure-configuration',\n description: 'An Infrastructure Configuration',\n // Optional - instance types to use for build/test\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.STANDARD7_INTEL, ec2.InstanceSize.LARGE),\n ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.LARGE)\n ],\n // Optional - create an instance profile with necessary permissions\n instanceProfile: new iam.InstanceProfile(this, 'InstanceProfile', {\n instanceProfileName: 'test-instance-profile',\n role: new iam.Role(this, 'InstanceProfileRole', {\n assumedBy: iam.ServicePrincipal.fromStaticServicePrincipleName('ec2.amazonaws.com'),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSSMManagedInstanceCore'),\n iam.ManagedPolicy.fromAwsManagedPolicyName('EC2InstanceProfileForImageBuilder')\n ]\n })\n }),\n // Use VPC network configuration\n vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PUBLIC },\n securityGroups: [ec2.SecurityGroup.fromSecurityGroupId(this, 'SecurityGroup', vpc.vpcDefaultSecurityGroup)],\n keyPair: ec2.KeyPair.fromKeyPairName(this, 'KeyPair', 'imagebuilder-instance-key-pair'),\n terminateInstanceOnFailure: true,\n // Optional - IMDSv2 settings\n httpTokens: imagebuilder.HttpTokens.REQUIRED,\n httpPutResponseHopLimit: 1,\n // Optional - publish image completion messages to an SNS topic\n notificationTopic: sns.Topic.fromTopicArn(\n this,\n 'Topic',\n this.formatArn({ service: 'sns', resource: 'image-builder-topic' })\n ),\n // Optional - log settings. Logging is enabled by default\n logging: {\n s3Bucket: s3.Bucket.fromBucketName(this, 'LogBucket', `imagebuilder-logging-${Aws.ACCOUNT_ID}`),\n s3KeyPrefix: 'imagebuilder-logs'\n },\n // Optional - host placement settings\n ec2InstanceAvailabilityZone: Stack.of(this).availabilityZones[0],\n ec2InstanceHostId: dedicatedHost.attrHostId,\n ec2InstanceTenancy: imagebuilder.Tenancy.HOST,\n resourceTags: {\n Environment: 'production'\n }\n});\n```\n\n### Distribution Configuration\n\nDistribution configuration defines how and where your built images are distributed after successful creation. For AMIs,\nthis includes target AWS Regions, KMS encryption keys, account sharing permissions, License Manager associations, and\nlaunch template configurations. For container images, it specifies the target Amazon ECR repositories across regions.\nA distribution configuration can be associated with an image or an image pipeline to define these distribution settings\nfor image builds.\n\n#### AMI Distributions\n\nAMI distributions can be defined to copy and modify AMIs in different accounts and regions, and apply them to launch\ntemplates, SSM parameters, etc.:\n\n```ts\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'DistributionConfiguration', {\n distributionConfigurationName: 'test-distribution-configuration',\n description: 'A Distribution Configuration',\n amiDistributions: [\n {\n // Distribute AMI to us-east-2 and publish the AMI ID to an SSM parameter\n region: 'us-east-2',\n ssmParameters: [\n {\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossRegionParameter', {\n parameterName: '/imagebuilder/ami',\n forceDynamicReference: true\n })\n }\n ]\n }\n ]\n});\n\n// For AMI-based image builds - add an AMI distribution in the current region\ndistributionConfiguration.addAmiDistributions({\n amiName: 'imagebuilder-{{ imagebuilder:buildDate }}',\n amiDescription: 'Build AMI',\n amiKmsKey: kms.Key.fromLookup(this, 'ComponentKey', { aliasName: 'alias/distribution-encryption-key' }),\n // Copy the AMI to different accounts\n amiTargetAccountIds: ['123456789012', '098765432109'],\n // Add launch permissions on the AMI\n amiLaunchPermission: {\n organizationArns: [\n this.formatArn({ region: '', service: 'organizations', resource: 'organization', resourceName: 'o-1234567abc' })\n ],\n organizationalUnitArns: [\n this.formatArn({\n region: '',\n service: 'organizations',\n resource: 'ou',\n resourceName: 'o-1234567abc/ou-a123-b4567890'\n })\n ],\n isPublicUserGroup: true,\n accountIds: ['234567890123']\n },\n // Attach tags to the AMI\n amiTags: {\n Environment: 'production',\n Version: '{{ imagebuilder:buildVersion }}'\n },\n // Optional - publish the distributed AMI ID to an SSM parameter\n ssmParameters: [\n {\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'Parameter', {\n parameterName: '/imagebuilder/ami',\n forceDynamicReference: true\n })\n },\n {\n amiAccount: '098765432109',\n dataType: ssm.ParameterDataType.TEXT,\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossAccountParameter', {\n parameterName: 'imagebuilder-prod-ami',\n forceDynamicReference: true\n })\n }\n ],\n // Optional - create a new launch template version with the distributed AMI ID\n launchTemplates: [\n {\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'LaunchTemplate', {\n launchTemplateId: 'lt-1234'\n }),\n setDefaultVersion: true\n },\n {\n accountId: '123456789012',\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'CrossAccountLaunchTemplate', {\n launchTemplateId: 'lt-5678'\n }),\n setDefaultVersion: true\n }\n ],\n // Optional - enable Fast Launch on an imported launch template\n fastLaunchConfigurations: [\n {\n enabled: true,\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'FastLaunchLT', {\n launchTemplateName: 'fast-launch-lt'\n }),\n maxParallelLaunches: 10,\n targetSnapshotCount: 2\n }\n ],\n // Optional - license configurations to apply to the AMI\n licenseConfigurationArns: [\n 'arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-abcdefghijklmnopqrstuvwxyz'\n ]\n});\n```\n\n#### Container Distributions\n\n##### Container repositories\n\nContainer distributions can be configured to distribute to ECR repositories:\n\n```ts\nconst ecrRepository = ecr.Repository.fromRepositoryName(this, 'ECRRepository', 'my-repo');\nconst imageBuilderRepository = imagebuilder.Repository.fromEcr(ecrRepository);\n```\n\n##### Defining a container distribution\n\nYou can configure the container repositories as well as the description and tags applied to the distributed container\nimages:\n\n```ts\nconst ecrRepository = ecr.Repository.fromRepositoryName(this, 'ECRRepository', 'my-repo');\nconst containerRepository = imagebuilder.Repository.fromEcr(ecrRepository);\nconst containerDistributionConfiguration = new imagebuilder.DistributionConfiguration(\n this,\n 'ContainerDistributionConfiguration'\n);\n\ncontainerDistributionConfiguration.addContainerDistributions({\n containerRepository,\n containerDescription: 'Test container image',\n containerTags: ['latest', 'latest-1.0']\n});\n```\n\n### Workflow\n\nWorkflows define the sequence of steps that Image Builder performs during image creation. There are three workflow\ntypes: BUILD (image building), TEST (testing images), and DISTRIBUTION (distributing container images).\n\n#### Basic Workflow Usage\n\nCreate a workflow with the required properties: workflow type and workflow data.\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'MyWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromJsonObject({\n schemaVersion: imagebuilder.WorkflowSchemaVersion.V1_0,\n steps: [\n {\n name: 'LaunchBuildInstance',\n action: imagebuilder.WorkflowAction.LAUNCH_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n waitFor: 'ssmAgent',\n },\n },\n {\n name: 'ExecuteComponents',\n action: imagebuilder.WorkflowAction.EXECUTE_COMPONENTS,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n {\n name: 'CreateImage',\n action: imagebuilder.WorkflowAction.CREATE_IMAGE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n {\n name: 'TerminateInstance',\n action: imagebuilder.WorkflowAction.TERMINATE_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.CONTINUE,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n ],\n outputs: [\n {\n name: 'ImageId',\n value: '$.stepOutputs.CreateImage.imageId',\n },\n ],\n }),\n});\n```\n\n#### Workflow Data Sources\n\n##### Inline Workflow Data\n\nUse `WorkflowData.fromInline()` for existing YAML/JSON definitions:\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'InlineWorkflow', {\n workflowType: imagebuilder.WorkflowType.TEST,\n data: imagebuilder.WorkflowData.fromInline(`\nschemaVersion: 1.0\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: ssmAgent\n - name: RunTests\n action: RunCommand\n onFailure: Abort\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n commands: ['./run-tests.sh']\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n`),\n});\n```\n\n##### JSON Object Workflow Data\n\nMost developer-friendly approach using JavaScript objects:\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'JsonWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromJsonObject({\n schemaVersion: imagebuilder.WorkflowSchemaVersion.V1_0,\n steps: [\n {\n name: 'LaunchBuildInstance',\n action: imagebuilder.WorkflowAction.LAUNCH_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n waitFor: 'ssmAgent'\n }\n },\n {\n name: 'ExecuteComponents',\n action: imagebuilder.WorkflowAction.EXECUTE_COMPONENTS,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123'\n }\n },\n {\n name: 'CreateImage',\n action: imagebuilder.WorkflowAction.CREATE_IMAGE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123'\n }\n },\n {\n name: 'TerminateInstance',\n action: imagebuilder.WorkflowAction.TERMINATE_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.CONTINUE,\n inputs: {\n 'instanceId': 'i-123'\n }\n }\n ],\n outputs: [\n {\n name: 'ImageId',\n value: '$.stepOutputs.CreateImage.imageId'\n }\n ]\n })\n});\n```\n\n##### S3 Workflow Data\n\nFor those workflows you want to upload or have uploaded to S3:\n\n```ts\n// Upload a local file\nconst workflowFromAsset = new imagebuilder.Workflow(this, 'AssetWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromAsset(this, 'WorkflowAsset', './my-workflow.yml'),\n});\n\n// Reference an existing S3 object\nconst bucket = s3.Bucket.fromBucketName(this, 'WorkflowBucket', 'my-workflows-bucket');\nconst workflowFromS3 = new imagebuilder.Workflow(this, 'S3Workflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromS3(bucket, 'workflows/my-workflow.yml'),\n});\n```\n\n#### Encrypt workflow data with a KMS key\n\nYou can encrypt workflow data with a KMS key, so that only principals with access to decrypt with the key are able to\naccess the workflow data.\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'EncryptedWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n kmsKey: new kms.Key(this, 'WorkflowKey'),\n data: imagebuilder.WorkflowData.fromJsonObject({\n schemaVersion: imagebuilder.WorkflowSchemaVersion.V1_0,\n steps: [\n {\n name: 'LaunchBuildInstance',\n action: imagebuilder.WorkflowAction.LAUNCH_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n waitFor: 'ssmAgent',\n },\n },\n {\n name: 'CreateImage',\n action: imagebuilder.WorkflowAction.CREATE_IMAGE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n {\n name: 'TerminateInstance',\n action: imagebuilder.WorkflowAction.TERMINATE_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.CONTINUE,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n ],\n outputs: [\n {\n name: 'ImageId',\n value: '$.stepOutputs.CreateImage.imageId',\n },\n ],\n }),\n});\n```\n\n#### AWS-Managed Workflows\n\nAWS provides a collection of workflows for common scenarios:\n\n```ts\n// Build workflows\nconst buildImageWorkflow = imagebuilder.AwsManagedWorkflow.buildImage(this, 'BuildImage');\nconst buildContainerWorkflow = imagebuilder.AwsManagedWorkflow.buildContainer(this, 'BuildContainer');\n\n// Test workflows\nconst testImageWorkflow = imagebuilder.AwsManagedWorkflow.testImage(this, 'TestImage');\nconst testContainerWorkflow = imagebuilder.AwsManagedWorkflow.testContainer(this, 'TestContainer');\n\n// Distribution workflows\nconst distributeContainerWorkflow = imagebuilder.AwsManagedWorkflow.distributeContainer(this, 'DistributeContainer');\n```\n\n### Lifecycle Policy\n\nLifecycle policies help you manage the retention and cleanup of Image Builder resources automatically. These policies\ndefine rules for deprecating or deleting old image versions, managing AMI snapshots, and controlling resource costs by\nremoving unused images based on age, count, or other criteria.\n\n#### Lifecycle Policy Basic Usage\n\nCreate a lifecycle policy to automatically delete old AMI images after 30 days:\n\n```ts\nconst lifecyclePolicy = new imagebuilder.LifecyclePolicy(this, 'MyLifecyclePolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(30) } }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'development' }\n }\n});\n```\n\nCreate a lifecycle policy to keep only the 10 most recent container images:\n\n```ts\nconst containerLifecyclePolicy = new imagebuilder.LifecyclePolicy(this, 'ContainerLifecyclePolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.CONTAINER_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 10 } }\n }\n ],\n resourceSelection: {\n tags: { Application: 'web-app' }\n }\n});\n```\n\n#### Lifecycle Policy Resource Selection\n\n##### Tag-Based Resource Selection\n\nApply lifecycle policies to images with specific tags:\n\n```ts\nconst tagBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'TagBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(90) } }\n }\n ],\n resourceSelection: {\n tags: {\n Environment: 'staging',\n Team: 'backend'\n }\n }\n});\n```\n\n##### Recipe-Based Resource Selection\n\nApply lifecycle policies to specific image or container recipes:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n\nconst recipeBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'RecipeBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 5 } }\n }\n ],\n resourceSelection: {\n recipes: [imageRecipe, containerRecipe]\n }\n});\n```\n\n#### Lifecycle Policy Rules\n\n##### Age-Based Rules\n\nDelete images older than a specific time period:\n\n```ts\nconst ageBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'AgeBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DELETE,\n includeAmis: true,\n includeSnapshots: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(60),\n retainAtLeast: 3 // Always keep at least 3 images\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'testing' }\n }\n});\n```\n\n##### Count-Based Rules\n\nKeep only a specific number of the most recent images:\n\n```ts\nconst countBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'CountBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.CONTAINER_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 15 } } // Keep only the 15 most recent images\n }\n ],\n resourceSelection: {\n tags: { Application: 'microservice' }\n }\n});\n```\n\n##### Multiple Lifecycle Rules\n\nImplement a graduated approach with multiple actions:\n\n```ts\nconst graduatedPolicy = new imagebuilder.LifecyclePolicy(this, 'GraduatedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n // First: Deprecate images after 30 days\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DEPRECATE,\n includeAmis: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(30),\n retainAtLeast: 5\n }\n }\n },\n {\n // Second: Disable images after 60 days\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DISABLE,\n includeAmis: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(60),\n retainAtLeast: 3\n }\n }\n },\n {\n // Finally: Delete images after 90 days\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DELETE,\n includeAmis: true,\n includeSnapshots: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(90),\n retainAtLeast: 1\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'production' }\n }\n});\n```\n\n#### Lifecycle Policy Exclusion Rules\n\n##### AMI Exclusion Rules\n\nExclude specific AMIs from lifecycle actions based on various criteria:\n\n```ts\nconst excludeAmisPolicy = new imagebuilder.LifecyclePolicy(this, 'ExcludeAmisPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(30) } },\n exclusionRules: {\n amiExclusionRules: {\n isPublic: true, // Exclude public AMIs\n lastLaunched: Duration.days(7), // Exclude AMIs launched in last 7 days\n regions: ['us-west-2', 'eu-west-1'], // Exclude AMIs in specific regions\n sharedAccounts: ['123456789012'], // Exclude AMIs shared with specific accounts\n tags: {\n Protected: 'true',\n Environment: 'production'\n }\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Team: 'infrastructure' }\n }\n});\n```\n\n##### Image Exclusion Rules\n\nExclude Image Builder images with protective tags:\n\n```ts\nconst excludeImagesPolicy = new imagebuilder.LifecyclePolicy(this, 'ExcludeImagesPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.CONTAINER_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 20 } },\n exclusionRules: {\n imageExclusionRules: {\n tags: {\n DoNotDelete: 'true',\n Critical: 'baseline'\n }\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Application: 'frontend' }\n }\n});\n```\n\n#### Advanced Lifecycle Configuration\n\n##### Custom Execution Roles\n\nProvide your own IAM execution role with specific permissions:\n\n```ts\nconst executionRole = new iam.Role(this, 'LifecycleExecutionRole', {\n assumedBy: new iam.ServicePrincipal('imagebuilder.amazonaws.com'),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/EC2ImageBuilderLifecycleExecutionPolicy')\n ]\n});\n\nconst customRolePolicy = new imagebuilder.LifecyclePolicy(this, 'CustomRolePolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n executionRole: executionRole,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(45) } }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'development' }\n }\n});\n```\n\n##### Lifecycle Policy Status\n\nControl whether the lifecycle policy is active:\n\n```ts\nconst disabledPolicy = new imagebuilder.LifecyclePolicy(this, 'DisabledPolicy', {\n lifecyclePolicyName: 'my-disabled-policy',\n description: 'A lifecycle policy that is temporarily disabled',\n status: imagebuilder.LifecyclePolicyStatus.DISABLED,\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(30) } }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'testing' }\n },\n tags: {\n Owner: 'DevOps',\n CostCenter: 'Engineering'\n }\n});\n```\n\n##### Importing Lifecycle Policies\n\nReference lifecycle policies created outside CDK:\n\n```ts\n// Import by name\nconst importedByName = imagebuilder.LifecyclePolicy.fromLifecyclePolicyName(\n this,\n 'ImportedByName',\n 'existing-lifecycle-policy'\n);\n\n// Import by ARN\nconst importedByArn = imagebuilder.LifecyclePolicy.fromLifecyclePolicyArn(\n this,\n 'ImportedByArn',\n 'arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/my-policy'\n);\n\nimportedByName.grantRead(lambdaRole);\nimportedByArn.grant(lambdaRole, 'imagebuilder:UpdateLifecyclePolicy');\n```\n"
|
|
8497
|
+
"markdown": "# EC2 Image Builder Construct Library\n\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[Amazon EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) is a\nfully managed AWS service that helps you automate the creation, management, and deployment of customized, secure, and\nup-to-date server images. You can use Image Builder to create Amazon Machine Images (AMIs) and container images for use\nacross AWS Regions.\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. It allows you to define\nImage Builder pipelines, images, recipes, components, workflows, and lifecycle policies.\nA component defines the sequence of steps required to customize an instance during image creation (build component) or\ntest an instance launched from the created image (test component). Components are created from declarative YAML or JSON\ndocuments that describe runtime configuration for building, validating, or testing instances. Components are included\nwhen added to the image recipe or container recipe for an image build.\n\nEC2 Image Builder supports AWS-managed components for common tasks, AWS Marketplace components, and custom components\nthat you create. Components run during specific workflow phases: build and validate phases during the build stage, and\ntest phase during the test stage.\n\n### Image Pipeline\n\nAn image pipeline provides the automation framework for building secure AMIs and container images. The pipeline\norchestrates the entire image creation process by combining an image recipe or container recipe with infrastructure\nconfiguration and distribution configuration. Pipelines can run on a schedule or be triggered manually, and they manage\nthe build, test, and distribution phases automatically.\n\n#### Image Pipeline Basic Usage\n\nCreate a simple AMI pipeline with just an image recipe:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\nconst imagePipeline = new imagebuilder.ImagePipeline(this, 'MyImagePipeline', {\n recipe: exampleImageRecipe\n});\n```\n\nCreate a simple container pipeline with just a container recipe:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n\nconst containerPipeline = new imagebuilder.ImagePipeline(this, 'MyContainerPipeline', {\n recipe: exampleContainerRecipe\n});\n```\n\n#### Image Pipeline Scheduling\n\n##### Manual Pipeline Execution\n\nCreate a pipeline that runs only when manually triggered:\n\n```ts\nconst manualPipeline = new imagebuilder.ImagePipeline(this, 'ManualPipeline', {\n imagePipelineName: 'my-manual-pipeline',\n description: 'Pipeline triggered manually for production builds',\n recipe: exampleImageRecipe\n // No schedule property - manual execution only\n});\n\n// Grant Lambda function permission to trigger the pipeline\nmanualPipeline.grantStartExecution(lambdaRole);\n```\n\n##### Automated Pipeline Scheduling\n\nSchedule a pipeline to run automatically using cron expressions:\n\n```ts\nconst weeklyPipeline = new imagebuilder.ImagePipeline(this, 'WeeklyPipeline', {\n imagePipelineName: 'weekly-build-pipeline',\n recipe: exampleImageRecipe,\n schedule: {\n expression: events.Schedule.cron({\n minute: '0',\n hour: '6',\n weekDay: 'MON'\n })\n }\n});\n```\n\nUse rate expressions for regular intervals:\n\n```ts\nconst dailyPipeline = new imagebuilder.ImagePipeline(this, 'DailyPipeline', {\n recipe: exampleContainerRecipe,\n schedule: {\n expression: events.Schedule.rate(Duration.days(1))\n }\n});\n```\n\n##### Pipeline Schedule Configuration\n\nConfigure advanced scheduling options:\n\n```ts\nconst advancedSchedulePipeline = new imagebuilder.ImagePipeline(this, 'AdvancedSchedulePipeline', {\n recipe: exampleImageRecipe,\n schedule: {\n expression: events.Schedule.rate(Duration.days(7)),\n // Only trigger when dependencies are updated (new base images, components, etc.)\n startCondition: imagebuilder.ScheduleStartCondition.EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE,\n // Automatically disable after 3 consecutive failures\n autoDisableFailureCount: 3\n },\n // Start enabled\n status: imagebuilder.ImagePipelineStatus.ENABLED\n});\n```\n\n#### Image Pipeline Configuration\n\n##### Infrastructure and Distribution in Image Pipelines\n\nConfigure custom infrastructure and distribution settings:\n\n```ts\nconst infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {\n infrastructureConfigurationName: 'production-infrastructure',\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)\n ],\n vpc: vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }\n});\n\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');\ndistributionConfiguration.addAmiDistributions({\n amiName: 'production-ami-{{ imagebuilder:buildDate }}',\n amiTargetAccountIds: ['123456789012', '098765432109']\n});\n\nconst productionPipeline = new imagebuilder.ImagePipeline(this, 'ProductionPipeline', {\n recipe: exampleImageRecipe,\n infrastructureConfiguration: infrastructureConfiguration,\n distributionConfiguration: distributionConfiguration\n});\n```\n\n##### Pipeline Logging Configuration\n\nConfigure custom CloudWatch log groups for pipeline and image logs:\n\n```ts\nconst pipelineLogGroup = new logs.LogGroup(this, 'PipelineLogGroup', {\n logGroupName: '/custom/imagebuilder/pipeline/logs',\n retention: logs.RetentionDays.ONE_MONTH\n});\n\nconst imageLogGroup = new logs.LogGroup(this, 'ImageLogGroup', {\n logGroupName: '/custom/imagebuilder/image/logs',\n retention: logs.RetentionDays.ONE_WEEK\n});\n\nconst loggedPipeline = new imagebuilder.ImagePipeline(this, 'LoggedPipeline', {\n recipe: exampleImageRecipe,\n imagePipelineLogGroup: pipelineLogGroup,\n imageLogGroup: imageLogGroup\n});\n```\n\n##### Workflow Integration in Image Pipelines\n\nUse AWS-managed workflows for common pipeline phases:\n\n```ts\nconst workflowPipeline = new imagebuilder.ImagePipeline(this, 'WorkflowPipeline', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.AmazonManagedWorkflow.buildImage(this, 'BuildWorkflow') },\n { workflow: imagebuilder.AmazonManagedWorkflow.testImage(this, 'TestWorkflow') }\n ]\n});\n```\n\nFor container pipelines, use container-specific workflows:\n\n```ts\nconst containerWorkflowPipeline = new imagebuilder.ImagePipeline(this, 'ContainerWorkflowPipeline', {\n recipe: exampleContainerRecipe,\n workflows: [\n { workflow: imagebuilder.AmazonManagedWorkflow.buildContainer(this, 'BuildContainer') },\n { workflow: imagebuilder.AmazonManagedWorkflow.testContainer(this, 'TestContainer') },\n { workflow: imagebuilder.AmazonManagedWorkflow.distributeContainer(this, 'DistributeContainer') }\n ]\n});\n```\n\n##### Advanced Features in Image Pipelines\n\nConfigure image scanning for container pipelines:\n\n```ts\nconst scanningRepository = new ecr.Repository(this, 'ScanningRepo');\n\nconst scannedContainerPipeline = new imagebuilder.ImagePipeline(this, 'ScannedContainerPipeline', {\n recipe: exampleContainerRecipe,\n imageScanningEnabled: true,\n imageScanningEcrRepository: scanningRepository,\n imageScanningEcrTags: ['security-scan', 'latest']\n});\n```\n\nControl metadata collection and testing:\n\n```ts\nconst controlledPipeline = new imagebuilder.ImagePipeline(this, 'ControlledPipeline', {\n recipe: exampleImageRecipe,\n enhancedImageMetadataEnabled: true, // Collect detailed OS and package info\n imageTestsEnabled: false // Skip testing phase for faster builds\n});\n```\n\n#### Image Pipeline Events\n\n##### Pipeline Event Handling\n\nHandle specific pipeline events:\n\n```ts\n// Monitor CVE detection\nexamplePipeline.onCVEDetected('CVEAlert', {\n target: new targets.SnsTopic(topic)\n});\n\n// Handle pipeline auto-disable events\nexamplePipeline.onImagePipelineAutoDisabled('PipelineDisabledAlert', {\n target: new targets.LambdaFunction(lambdaFunction)\n});\n```\n\n#### Importing Image Pipelines\n\nReference existing pipelines created outside CDK:\n\n```ts\n// Import by name\nconst existingPipelineByName = imagebuilder.ImagePipeline.fromImagePipelineName(\n this,\n 'ExistingPipelineByName',\n 'my-existing-pipeline'\n);\n\n// Import by ARN\nconst existingPipelineByArn = imagebuilder.ImagePipeline.fromImagePipelineArn(\n this,\n 'ExistingPipelineByArn',\n 'arn:aws:imagebuilder:us-east-1:123456789012:image-pipeline/imported-pipeline'\n);\n\n// Grant permissions to imported pipelines\nconst automationRole = new iam.Role(this, 'AutomationRole', {\n assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com')\n});\n\nexistingPipelineByName.grantStartExecution(automationRole);\nexistingPipelineByArn.grantRead(lambdaRole);\n```\n\n### Image\n\nAn image is the output resource created by Image Builder, consisting of an AMI or container image plus metadata such as\nversion, platform, and creation details. Images are used as base images for future builds and can be shared across AWS\naccounts. While images are the output from image pipeline executions, they can also be created in an ad-hoc manner\noutside a pipeline, defined as a standalone resource.\n\n#### Image Basic Usage\n\nCreate a simple AMI-based image from an image recipe:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\nconst amiImage = new imagebuilder.Image(this, 'MyAmiImage', {\n recipe: imageRecipe\n});\n```\n\nCreate a simple container image from a container recipe:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n\nconst containerImage = new imagebuilder.Image(this, 'MyContainerImage', {\n recipe: containerRecipe\n});\n```\n\n#### AWS-Managed Images\n\n##### Pre-defined OS Images\n\nUse AWS-managed images for common operating systems:\n\n```ts\n// Amazon Linux 2023 AMI for x86_64\nconst amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Ubuntu 22.04 AMI for ARM64\nconst ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.ARM64\n});\n\n// Windows Server 2022 Full AMI\nconst windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Use as base image in recipe\nconst managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {\n baseImage: amazonLinux2023Ami.toBaseImage()\n});\n```\n\n##### Custom AWS-Managed Images\n\nImport AWS-managed images by name or attributes:\n\n```ts\n// Import by name\nconst managedImageByName = imagebuilder.AmazonManagedImage.fromAmazonManagedImageName(\n this,\n 'ManagedImageByName',\n 'amazon-linux-2023-x86'\n);\n\n// Import by attributes with specific version\nconst managedImageByAttributes = imagebuilder.AmazonManagedImage.fromAmazonManagedImageAttributes(this, 'ManagedImageByAttributes', {\n imageName: 'ubuntu-server-22-lts-x86',\n imageVersion: '2024.11.25'\n});\n```\n\n#### Image Configuration\n\n##### Infrastructure and Distribution in Images\n\nConfigure custom infrastructure and distribution settings:\n\n```ts\nconst infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {\n infrastructureConfigurationName: 'production-infrastructure',\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)\n ],\n vpc: vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }\n});\n\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');\ndistributionConfiguration.addAmiDistributions({\n amiName: 'production-ami-{{ imagebuilder:buildDate }}',\n amiTargetAccountIds: ['123456789012', '098765432109']\n});\n\nconst productionImage = new imagebuilder.Image(this, 'ProductionImage', {\n recipe: exampleImageRecipe,\n infrastructureConfiguration: infrastructureConfiguration,\n distributionConfiguration: distributionConfiguration\n});\n```\n\n##### Logging Configuration\n\nConfigure custom CloudWatch log groups for image builds:\n\n```ts\nconst logGroup = new logs.LogGroup(this, 'ImageLogGroup', {\n logGroupName: '/custom/imagebuilder/image/logs',\n retention: logs.RetentionDays.ONE_MONTH\n});\n\nconst loggedImage = new imagebuilder.Image(this, 'LoggedImage', {\n recipe: exampleImageRecipe,\n logGroup: logGroup\n});\n```\n\n##### Workflow Integration in Images\n\nUse workflows for custom build, test, and distribution processes:\n\n```ts\nconst imageWithWorkflows = new imagebuilder.Image(this, 'ImageWithWorkflows', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.AmazonManagedWorkflow.buildImage(this, 'BuildWorkflow') },\n { workflow: imagebuilder.AmazonManagedWorkflow.testImage(this, 'TestWorkflow') }\n ]\n});\n```\n\n##### Advanced Features in Images\n\nConfigure image scanning, metadata collection, and testing:\n\n```ts\nconst scanningRepository = new ecr.Repository(this, 'ScanningRepository');\n\nconst advancedContainerImage = new imagebuilder.Image(this, 'AdvancedContainerImage', {\n recipe: exampleContainerRecipe,\n imageScanningEnabled: true,\n imageScanningEcrRepository: scanningRepository,\n imageScanningEcrTags: ['security-scan', 'latest'],\n enhancedImageMetadataEnabled: true,\n imageTestsEnabled: false // Skip testing for faster builds\n});\n```\n\n#### Importing Images\n\nReference existing images created outside CDK:\n\n```ts\n// Import by name\nconst existingImageByName = imagebuilder.Image.fromImageName(\n this,\n 'ExistingImageByName',\n 'my-existing-image'\n);\n\n// Import by ARN\nconst existingImageByArn = imagebuilder.Image.fromImageArn(\n this,\n 'ExistingImageByArn',\n 'arn:aws:imagebuilder:us-east-1:123456789012:image/imported-image/1.0.0'\n);\n\n// Import by attributes\nconst existingImageByAttributes = imagebuilder.Image.fromImageAttributes(this, 'ExistingImageByAttributes', {\n imageName: 'shared-base-image',\n imageVersion: '2024.11.25'\n});\n\n// Grant permissions to imported images\nconst role = new iam.Role(this, 'ImageAccessRole', {\n assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com')\n});\n\nexistingImageByName.grantRead(role);\nexistingImageByArn.grant(role, 'imagebuilder:GetImage', 'imagebuilder:ListImagePackages');\n```\n\n### Image Recipe\n\n#### Image Recipe Basic Usage\n\nCreate an image recipe with the required base image:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n```\n\n#### Image Recipe Base Images\n\nTo create a recipe, you have to select a base image to build and customize from. This base image can be referenced from\nvarious sources, such as from SSM parameters, AWS Marketplace products, and AMI IDs directly.\n\n##### SSM Parameters\n\nUsing SSM parameter references:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'SsmImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\n// Using an SSM parameter construct\nconst parameter = ssm.StringParameter.fromStringParameterName(\n this,\n 'BaseImageParameter',\n '/aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base'\n);\nconst windowsRecipe = new imagebuilder.ImageRecipe(this, 'WindowsImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameter(parameter)\n});\n```\n\n##### AMI IDs\n\nWhen you have a specific AMI to use:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'AmiImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromAmiId('ami-12345678')\n});\n```\n\n##### Marketplace Images\n\nFor marketplace base images:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MarketplaceImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromMarketplaceProductId('prod-1234567890abcdef0')\n});\n```\n\n#### Image Recipe Components\n\nComponents from various sources, such as custom-owned, AWS-owned, or AWS Marketplace-owned, can optionally be included\nin recipes. For parameterized components, you are able to provide the parameters to use in the recipe, which will be\napplied during the image build when executing components.\n\n##### Custom Components in Image Recipes\n\nAdd your own components to the recipe:\n\n```ts\nconst customComponent = new imagebuilder.Component(this, 'MyComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-app',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['yum install -y my-application']\n }\n }\n ]\n }\n ]\n })\n});\n\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'ComponentImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: customComponent\n }\n ]\n});\n```\n\n##### AWS-Managed Components in Image Recipes\n\nUse pre-built AWS components:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'AmazonManagedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: imagebuilder.AmazonManagedComponent.updateOs(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n })\n },\n {\n component: imagebuilder.AmazonManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n })\n }\n ]\n});\n```\n\n##### Component Parameters in Image Recipes\n\nPass parameters to components that accept them:\n\n```ts\nconst parameterizedComponent = imagebuilder.Component.fromComponentName(\n this,\n 'ParameterizedComponent',\n 'my-parameterized-component'\n);\n\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'ParameterizedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: parameterizedComponent,\n parameters: {\n environment: imagebuilder.ComponentParameterValue.fromString('production'),\n version: imagebuilder.ComponentParameterValue.fromString('1.0.0')\n }\n }\n ]\n});\n```\n\n#### Image Recipe Configuration\n\n##### Block Device Configuration\n\nConfigure storage for the build instance:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'BlockDeviceImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n blockDevices: [\n {\n deviceName: '/dev/sda1',\n volume: ec2.BlockDeviceVolume.ebs(100, {\n encrypted: true,\n volumeType: ec2.EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3\n })\n }\n ]\n});\n```\n\n##### AMI Tagging\n\nTag the output AMI:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'TaggedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n amiTags: {\n Environment: 'Production',\n Application: 'WebServer',\n Owner: 'DevOps Team'\n }\n});\n```\n\n### Container Recipe\n\nA container recipe is similar to an image recipe but specifically for container images. It defines the base container\nimage and components applied to produce the desired configuration for the output container image. Container recipes work\nwith Docker images from DockerHub, Amazon ECR, or Amazon-managed container images as starting points.\n\n#### Container Recipe Basic Usage\n\nCreate a container recipe with the required base image and target repository:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n```\n\n#### Container Recipe Base Images\n\n##### DockerHub Images\n\nUsing public Docker Hub images:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'DockerHubContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n```\n\n##### ECR Images\n\nUsing images from your own ECR repositories:\n\n```ts\nconst sourceRepo = ecr.Repository.fromRepositoryName(this, 'SourceRepo', 'my-base-image');\nconst targetRepo = ecr.Repository.fromRepositoryName(this, 'TargetRepo', 'my-container-repo');\n\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'EcrContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromEcr(sourceRepo, '1.0.0'),\n targetRepository: imagebuilder.Repository.fromEcr(targetRepo)\n});\n```\n\n##### ECR Public Images\n\nUsing images from Amazon ECR Public:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'EcrPublicContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromEcrPublic('amazonlinux', 'amazonlinux', '2023'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n```\n\n#### Container Recipe Components\n\n##### Custom Components in Container Recipes\n\nAdd your own components to the container recipe:\n\n```ts\nconst customComponent = new imagebuilder.Component(this, 'MyComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-app',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['yum install -y my-container-application']\n }\n }\n ]\n }\n ]\n })\n});\n\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'ComponentContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n components: [\n {\n component: customComponent\n }\n ]\n});\n```\n\n##### AWS-Managed Components in Container Recipes\n\nUse pre-built AWS components:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'AmazonManagedContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n components: [\n {\n component: imagebuilder.AmazonManagedComponent.updateOs(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n })\n },\n {\n component: imagebuilder.AmazonManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n })\n }\n ]\n});\n```\n\n#### Container Recipe Configuration\n\n##### Custom Dockerfile\n\nProvide your own Dockerfile template:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'CustomDockerfileContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n dockerfile: imagebuilder.DockerfileData.fromInline(`\nFROM {{{ imagebuilder:parentImage }}}\nCMD [\"echo\", \"Hello, world!\"]\n{{{ imagebuilder:environments }}}\n{{{ imagebuilder:components }}}\n`)\n});\n```\n\n##### Instance Configuration\n\nConfigure the build instance:\n\n```ts\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'InstanceConfigContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n ),\n // Custom ECS-optimized AMI for building\n instanceImage: imagebuilder.ContainerInstanceImage.fromSsmParameterName(\n '/aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id'\n ),\n // Additional storage for build process\n instanceBlockDevices: [\n {\n deviceName: '/dev/xvda',\n volume: ec2.BlockDeviceVolume.ebs(50, {\n encrypted: true,\n volumeType: ec2.EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3\n })\n }\n ]\n});\n```\n\n### Component\n\nA component defines the sequence of steps required to customize an instance during image creation (build component) or\ntest an instance launched from the created image (test component). Components are created from declarative YAML or JSON\ndocuments that describe runtime configuration for building, validating, or testing instances. Components are included\nwhen added to the image recipe or container recipe for an image build.\n\nEC2 Image Builder supports AWS-managed components for common tasks, AWS Marketplace components, and custom components\nthat you create. Components run during specific workflow phases: build and validate phases during the build stage, and\ntest phase during the test stage.\n\n#### Basic Component Usage\n\nCreate a component with the required properties: platform and component data.\n\n```ts\nconst component = new imagebuilder.Component(this, 'MyComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-app',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['echo \"Installing my application...\"', 'yum update -y'],\n },\n },\n ],\n },\n ],\n }),\n});\n```\n\n#### Component Data Sources\n\n##### Inline Component Data\n\nUse `ComponentData.fromInline()` for existing YAML/JSON definitions:\n\n```ts\nconst component = new imagebuilder.Component(this, 'InlineComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromInline(`\nname: my-component\nschemaVersion: 1.0\nphases:\n - name: build\n steps:\n - name: update-os\n action: ExecuteBash\n inputs:\n commands: ['yum update -y']\n`)\n});\n```\n\n##### JSON Object Component Data\n\nMost developer-friendly approach using objects:\n\n```ts\n\nconst component = new imagebuilder.Component(this, 'JsonComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'configure-app',\n action: imagebuilder.ComponentAction.CREATE_FILE,\n inputs: {\n path: '/etc/myapp/config.json',\n content: '{\"env\": \"production\"}'\n }\n }\n ]\n }\n ]\n })\n});\n```\n\n##### Structured Component Document\n\nFor type-safe, CDK-native definitions with enhanced properties like `timeout` and `onFailure`.\n\n###### Defining a component step\n\nYou can define steps in the component which will be executed in order when the component is applied:\n\n```ts\nconst step: imagebuilder.ComponentDocumentStep = {\n name: 'configure-app',\n action: imagebuilder.ComponentAction.CREATE_FILE,\n inputs: imagebuilder.ComponentStepInputs.fromObject({\n path: '/etc/myapp/config.json',\n content: '{\"env\": \"production\"}'\n })\n};\n```\n\n###### Defining a component phase\n\nPhases group steps together, which run in sequence when building, validating or testing in the component:\n\n```ts\nconst phase: imagebuilder.ComponentDocumentPhase = {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'configure-app',\n action: imagebuilder.ComponentAction.CREATE_FILE,\n inputs: imagebuilder.ComponentStepInputs.fromObject({\n path: '/etc/myapp/config.json',\n content: '{\"env\": \"production\"}'\n })\n }\n ]\n};\n```\n\n###### Defining a component\n\nThe component data defines all steps across the provided phases to execute during the build:\n\n```ts\nconst component = new imagebuilder.Component(this, 'StructuredComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromComponentDocumentJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'install-with-timeout',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n timeout: Duration.minutes(10),\n onFailure: imagebuilder.ComponentOnFailure.CONTINUE,\n inputs: imagebuilder.ComponentStepInputs.fromObject({\n commands: ['./install-script.sh']\n })\n }\n ]\n }\n ]\n })\n});\n```\n\n##### S3 Component Data\n\nFor those components you want to upload or have uploaded to S3:\n\n```ts\n// Upload a local file\nconst componentFromAsset = new imagebuilder.Component(this, 'AssetComponent', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromAsset(this, 'ComponentAsset', './my-component.yml'),\n});\n\n// Reference an existing S3 object\nconst bucket = s3.Bucket.fromBucketName(this, 'ComponentBucket', 'my-components-bucket');\nconst componentFromS3 = new imagebuilder.Component(this, 'S3Component', {\n platform: imagebuilder.Platform.LINUX,\n data: imagebuilder.ComponentData.fromS3(bucket, 'components/my-component.yml'),\n});\n```\n\n#### Encrypt component data with a KMS key\n\nYou can encrypt component data with a KMS key, so that only principals with access to decrypt with the key are able to\naccess the component data.\n\n```ts\nconst component = new imagebuilder.Component(this, 'EncryptedComponent', {\n platform: imagebuilder.Platform.LINUX,\n kmsKey: new kms.Key(this, 'ComponentKey'),\n data: imagebuilder.ComponentData.fromJsonObject({\n schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,\n phases: [\n {\n name: imagebuilder.ComponentPhaseName.BUILD,\n steps: [\n {\n name: 'secure-setup',\n action: imagebuilder.ComponentAction.EXECUTE_BASH,\n inputs: {\n commands: ['echo \"This component data is encrypted with KMS\"']\n }\n }\n ]\n }\n ]\n })\n});\n```\n\n#### AWS-Managed Components\n\nAWS provides a collection of managed components for common tasks:\n\n```ts\n// Install AWS CLI v2\nconst awsCliComponent = imagebuilder.AmazonManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n});\n\n// Update the operating system\nconst updateComponent = imagebuilder.AmazonManagedComponent.updateOs(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n});\n\n// Reference any AWS-managed component by name\nconst customAwsComponent = imagebuilder.AmazonManagedComponent.fromAmazonManagedComponentName(\n this,\n 'CloudWatchAgent',\n 'amazon-cloudwatch-agent-linux'\n);\n```\n\n#### AWS Marketplace Components\n\nYou can reference AWS Marketplace components using the marketplace component name and its product ID:\n\n```ts\nconst marketplaceComponent = imagebuilder.AwsMarketplaceComponent.fromAwsMarketplaceComponentAttributes(\n this,\n 'MarketplaceComponent',\n {\n componentName: 'my-marketplace-component',\n marketplaceProductId: 'prod-1234567890abcdef0',\n }\n);\n```\n\n### Infrastructure Configuration\n\nInfrastructure configuration defines the compute resources and environment settings used during the image building\nprocess. This includes instance types, IAM instance profile, VPC settings, subnets, security groups, SNS topics for\nnotifications, logging configuration, and troubleshooting settings like whether to terminate instances on failure or\nkeep them running for debugging. These settings are applied to builds when included in an image or an image pipeline.\n\n```ts\nconst infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'InfrastructureConfiguration', {\n infrastructureConfigurationName: 'test-infrastructure-configuration',\n description: 'An Infrastructure Configuration',\n // Optional - instance types to use for build/test\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.STANDARD7_INTEL, ec2.InstanceSize.LARGE),\n ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.LARGE)\n ],\n // Optional - create an instance profile with necessary permissions\n instanceProfile: new iam.InstanceProfile(this, 'InstanceProfile', {\n instanceProfileName: 'test-instance-profile',\n role: new iam.Role(this, 'InstanceProfileRole', {\n assumedBy: iam.ServicePrincipal.fromStaticServicePrincipleName('ec2.amazonaws.com'),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSSMManagedInstanceCore'),\n iam.ManagedPolicy.fromAwsManagedPolicyName('EC2InstanceProfileForImageBuilder')\n ]\n })\n }),\n // Use VPC network configuration\n vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PUBLIC },\n securityGroups: [ec2.SecurityGroup.fromSecurityGroupId(this, 'SecurityGroup', vpc.vpcDefaultSecurityGroup)],\n keyPair: ec2.KeyPair.fromKeyPairName(this, 'KeyPair', 'imagebuilder-instance-key-pair'),\n terminateInstanceOnFailure: true,\n // Optional - IMDSv2 settings\n httpTokens: imagebuilder.HttpTokens.REQUIRED,\n httpPutResponseHopLimit: 1,\n // Optional - publish image completion messages to an SNS topic\n notificationTopic: sns.Topic.fromTopicArn(\n this,\n 'Topic',\n this.formatArn({ service: 'sns', resource: 'image-builder-topic' })\n ),\n // Optional - log settings. Logging is enabled by default\n logging: {\n s3Bucket: s3.Bucket.fromBucketName(this, 'LogBucket', `imagebuilder-logging-${Aws.ACCOUNT_ID}`),\n s3KeyPrefix: 'imagebuilder-logs'\n },\n // Optional - host placement settings\n ec2InstanceAvailabilityZone: Stack.of(this).availabilityZones[0],\n ec2InstanceHostId: dedicatedHost.attrHostId,\n ec2InstanceTenancy: imagebuilder.Tenancy.HOST,\n resourceTags: {\n Environment: 'production'\n }\n});\n```\n\n### Distribution Configuration\n\nDistribution configuration defines how and where your built images are distributed after successful creation. For AMIs,\nthis includes target AWS Regions, KMS encryption keys, account sharing permissions, License Manager associations, and\nlaunch template configurations. For container images, it specifies the target Amazon ECR repositories across regions.\nA distribution configuration can be associated with an image or an image pipeline to define these distribution settings\nfor image builds.\n\n#### AMI Distributions\n\nAMI distributions can be defined to copy and modify AMIs in different accounts and regions, and apply them to launch\ntemplates, SSM parameters, etc.:\n\n```ts\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'DistributionConfiguration', {\n distributionConfigurationName: 'test-distribution-configuration',\n description: 'A Distribution Configuration',\n amiDistributions: [\n {\n // Distribute AMI to us-east-2 and publish the AMI ID to an SSM parameter\n region: 'us-east-2',\n ssmParameters: [\n {\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossRegionParameter', {\n parameterName: '/imagebuilder/ami',\n forceDynamicReference: true\n })\n }\n ]\n }\n ]\n});\n\n// For AMI-based image builds - add an AMI distribution in the current region\ndistributionConfiguration.addAmiDistributions({\n amiName: 'imagebuilder-{{ imagebuilder:buildDate }}',\n amiDescription: 'Build AMI',\n amiKmsKey: kms.Key.fromLookup(this, 'ComponentKey', { aliasName: 'alias/distribution-encryption-key' }),\n // Copy the AMI to different accounts\n amiTargetAccountIds: ['123456789012', '098765432109'],\n // Add launch permissions on the AMI\n amiLaunchPermission: {\n organizationArns: [\n this.formatArn({ region: '', service: 'organizations', resource: 'organization', resourceName: 'o-1234567abc' })\n ],\n organizationalUnitArns: [\n this.formatArn({\n region: '',\n service: 'organizations',\n resource: 'ou',\n resourceName: 'o-1234567abc/ou-a123-b4567890'\n })\n ],\n isPublicUserGroup: true,\n accountIds: ['234567890123']\n },\n // Attach tags to the AMI\n amiTags: {\n Environment: 'production',\n Version: '{{ imagebuilder:buildVersion }}'\n },\n // Optional - publish the distributed AMI ID to an SSM parameter\n ssmParameters: [\n {\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'Parameter', {\n parameterName: '/imagebuilder/ami',\n forceDynamicReference: true\n })\n },\n {\n amiAccount: '098765432109',\n dataType: ssm.ParameterDataType.TEXT,\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossAccountParameter', {\n parameterName: 'imagebuilder-prod-ami',\n forceDynamicReference: true\n })\n }\n ],\n // Optional - create a new launch template version with the distributed AMI ID\n launchTemplates: [\n {\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'LaunchTemplate', {\n launchTemplateId: 'lt-1234'\n }),\n setDefaultVersion: true\n },\n {\n accountId: '123456789012',\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'CrossAccountLaunchTemplate', {\n launchTemplateId: 'lt-5678'\n }),\n setDefaultVersion: true\n }\n ],\n // Optional - enable Fast Launch on an imported launch template\n fastLaunchConfigurations: [\n {\n enabled: true,\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'FastLaunchLT', {\n launchTemplateName: 'fast-launch-lt'\n }),\n maxParallelLaunches: 10,\n targetSnapshotCount: 2\n }\n ],\n // Optional - license configurations to apply to the AMI\n licenseConfigurationArns: [\n 'arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-abcdefghijklmnopqrstuvwxyz'\n ]\n});\n```\n\n#### Container Distributions\n\n##### Container repositories\n\nContainer distributions can be configured to distribute to ECR repositories:\n\n```ts\nconst ecrRepository = ecr.Repository.fromRepositoryName(this, 'ECRRepository', 'my-repo');\nconst imageBuilderRepository = imagebuilder.Repository.fromEcr(ecrRepository);\n```\n\n##### Defining a container distribution\n\nYou can configure the container repositories as well as the description and tags applied to the distributed container\nimages:\n\n```ts\nconst ecrRepository = ecr.Repository.fromRepositoryName(this, 'ECRRepository', 'my-repo');\nconst containerRepository = imagebuilder.Repository.fromEcr(ecrRepository);\nconst containerDistributionConfiguration = new imagebuilder.DistributionConfiguration(\n this,\n 'ContainerDistributionConfiguration'\n);\n\ncontainerDistributionConfiguration.addContainerDistributions({\n containerRepository,\n containerDescription: 'Test container image',\n containerTags: ['latest', 'latest-1.0']\n});\n```\n\n### Workflow\n\nWorkflows define the sequence of steps that Image Builder performs during image creation. There are three workflow\ntypes: BUILD (image building), TEST (testing images), and DISTRIBUTION (distributing container images).\n\n#### Basic Workflow Usage\n\nCreate a workflow with the required properties: workflow type and workflow data.\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'MyWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromJsonObject({\n schemaVersion: imagebuilder.WorkflowSchemaVersion.V1_0,\n steps: [\n {\n name: 'LaunchBuildInstance',\n action: imagebuilder.WorkflowAction.LAUNCH_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n waitFor: 'ssmAgent',\n },\n },\n {\n name: 'ExecuteComponents',\n action: imagebuilder.WorkflowAction.EXECUTE_COMPONENTS,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n {\n name: 'CreateImage',\n action: imagebuilder.WorkflowAction.CREATE_IMAGE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n {\n name: 'TerminateInstance',\n action: imagebuilder.WorkflowAction.TERMINATE_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.CONTINUE,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n ],\n outputs: [\n {\n name: 'ImageId',\n value: '$.stepOutputs.CreateImage.imageId',\n },\n ],\n }),\n});\n```\n\n#### Workflow Data Sources\n\n##### Inline Workflow Data\n\nUse `WorkflowData.fromInline()` for existing YAML/JSON definitions:\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'InlineWorkflow', {\n workflowType: imagebuilder.WorkflowType.TEST,\n data: imagebuilder.WorkflowData.fromInline(`\nschemaVersion: 1.0\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: ssmAgent\n - name: RunTests\n action: RunCommand\n onFailure: Abort\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n commands: ['./run-tests.sh']\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n`),\n});\n```\n\n##### JSON Object Workflow Data\n\nMost developer-friendly approach using JavaScript objects:\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'JsonWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromJsonObject({\n schemaVersion: imagebuilder.WorkflowSchemaVersion.V1_0,\n steps: [\n {\n name: 'LaunchBuildInstance',\n action: imagebuilder.WorkflowAction.LAUNCH_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n waitFor: 'ssmAgent'\n }\n },\n {\n name: 'ExecuteComponents',\n action: imagebuilder.WorkflowAction.EXECUTE_COMPONENTS,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123'\n }\n },\n {\n name: 'CreateImage',\n action: imagebuilder.WorkflowAction.CREATE_IMAGE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123'\n }\n },\n {\n name: 'TerminateInstance',\n action: imagebuilder.WorkflowAction.TERMINATE_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.CONTINUE,\n inputs: {\n 'instanceId': 'i-123'\n }\n }\n ],\n outputs: [\n {\n name: 'ImageId',\n value: '$.stepOutputs.CreateImage.imageId'\n }\n ]\n })\n});\n```\n\n##### S3 Workflow Data\n\nFor those workflows you want to upload or have uploaded to S3:\n\n```ts\n// Upload a local file\nconst workflowFromAsset = new imagebuilder.Workflow(this, 'AssetWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromAsset(this, 'WorkflowAsset', './my-workflow.yml'),\n});\n\n// Reference an existing S3 object\nconst bucket = s3.Bucket.fromBucketName(this, 'WorkflowBucket', 'my-workflows-bucket');\nconst workflowFromS3 = new imagebuilder.Workflow(this, 'S3Workflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n data: imagebuilder.WorkflowData.fromS3(bucket, 'workflows/my-workflow.yml'),\n});\n```\n\n#### Encrypt workflow data with a KMS key\n\nYou can encrypt workflow data with a KMS key, so that only principals with access to decrypt with the key are able to\naccess the workflow data.\n\n```ts\nconst workflow = new imagebuilder.Workflow(this, 'EncryptedWorkflow', {\n workflowType: imagebuilder.WorkflowType.BUILD,\n kmsKey: new kms.Key(this, 'WorkflowKey'),\n data: imagebuilder.WorkflowData.fromJsonObject({\n schemaVersion: imagebuilder.WorkflowSchemaVersion.V1_0,\n steps: [\n {\n name: 'LaunchBuildInstance',\n action: imagebuilder.WorkflowAction.LAUNCH_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n waitFor: 'ssmAgent',\n },\n },\n {\n name: 'CreateImage',\n action: imagebuilder.WorkflowAction.CREATE_IMAGE,\n onFailure: imagebuilder.WorkflowOnFailure.ABORT,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n {\n name: 'TerminateInstance',\n action: imagebuilder.WorkflowAction.TERMINATE_INSTANCE,\n onFailure: imagebuilder.WorkflowOnFailure.CONTINUE,\n inputs: {\n 'instanceId': 'i-123',\n },\n },\n ],\n outputs: [\n {\n name: 'ImageId',\n value: '$.stepOutputs.CreateImage.imageId',\n },\n ],\n }),\n});\n```\n\n#### AWS-Managed Workflows\n\nAWS provides a collection of workflows for common scenarios:\n\n```ts\n// Build workflows\nconst buildImageWorkflow = imagebuilder.AmazonManagedWorkflow.buildImage(this, 'BuildImage');\nconst buildContainerWorkflow = imagebuilder.AmazonManagedWorkflow.buildContainer(this, 'BuildContainer');\n\n// Test workflows\nconst testImageWorkflow = imagebuilder.AmazonManagedWorkflow.testImage(this, 'TestImage');\nconst testContainerWorkflow = imagebuilder.AmazonManagedWorkflow.testContainer(this, 'TestContainer');\n\n// Distribution workflows\nconst distributeContainerWorkflow = imagebuilder.AmazonManagedWorkflow.distributeContainer(this, 'DistributeContainer');\n```\n\n### Lifecycle Policy\n\nLifecycle policies help you manage the retention and cleanup of Image Builder resources automatically. These policies\ndefine rules for deprecating or deleting old image versions, managing AMI snapshots, and controlling resource costs by\nremoving unused images based on age, count, or other criteria.\n\n#### Lifecycle Policy Basic Usage\n\nCreate a lifecycle policy to automatically delete old AMI images after 30 days:\n\n```ts\nconst lifecyclePolicy = new imagebuilder.LifecyclePolicy(this, 'MyLifecyclePolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(30) } }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'development' }\n }\n});\n```\n\nCreate a lifecycle policy to keep only the 10 most recent container images:\n\n```ts\nconst containerLifecyclePolicy = new imagebuilder.LifecyclePolicy(this, 'ContainerLifecyclePolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.CONTAINER_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 10 } }\n }\n ],\n resourceSelection: {\n tags: { Application: 'web-app' }\n }\n});\n```\n\n#### Lifecycle Policy Resource Selection\n\n##### Tag-Based Resource Selection\n\nApply lifecycle policies to images with specific tags:\n\n```ts\nconst tagBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'TagBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(90) } }\n }\n ],\n resourceSelection: {\n tags: {\n Environment: 'staging',\n Team: 'backend'\n }\n }\n});\n```\n\n##### Recipe-Based Resource Selection\n\nApply lifecycle policies to specific image or container recipes:\n\n```ts\nconst imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n )\n});\n\nconst containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {\n baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),\n targetRepository: imagebuilder.Repository.fromEcr(\n ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')\n )\n});\n\nconst recipeBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'RecipeBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 5 } }\n }\n ],\n resourceSelection: {\n recipes: [imageRecipe, containerRecipe]\n }\n});\n```\n\n#### Lifecycle Policy Rules\n\n##### Age-Based Rules\n\nDelete images older than a specific time period:\n\n```ts\nconst ageBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'AgeBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DELETE,\n includeAmis: true,\n includeSnapshots: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(60),\n retainAtLeast: 3 // Always keep at least 3 images\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'testing' }\n }\n});\n```\n\n##### Count-Based Rules\n\nKeep only a specific number of the most recent images:\n\n```ts\nconst countBasedPolicy = new imagebuilder.LifecyclePolicy(this, 'CountBasedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.CONTAINER_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 15 } } // Keep only the 15 most recent images\n }\n ],\n resourceSelection: {\n tags: { Application: 'microservice' }\n }\n});\n```\n\n##### Multiple Lifecycle Rules\n\nImplement a graduated approach with multiple actions:\n\n```ts\nconst graduatedPolicy = new imagebuilder.LifecyclePolicy(this, 'GraduatedPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n // First: Deprecate images after 30 days\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DEPRECATE,\n includeAmis: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(30),\n retainAtLeast: 5\n }\n }\n },\n {\n // Second: Disable images after 60 days\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DISABLE,\n includeAmis: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(60),\n retainAtLeast: 3\n }\n }\n },\n {\n // Finally: Delete images after 90 days\n action: {\n type: imagebuilder.LifecyclePolicyActionType.DELETE,\n includeAmis: true,\n includeSnapshots: true\n },\n filter: {\n ageFilter: {\n age: Duration.days(90),\n retainAtLeast: 1\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'production' }\n }\n});\n```\n\n#### Lifecycle Policy Exclusion Rules\n\n##### AMI Exclusion Rules\n\nExclude specific AMIs from lifecycle actions based on various criteria:\n\n```ts\nconst excludeAmisPolicy = new imagebuilder.LifecyclePolicy(this, 'ExcludeAmisPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(30) } },\n exclusionRules: {\n amiExclusionRules: {\n isPublic: true, // Exclude public AMIs\n lastLaunched: Duration.days(7), // Exclude AMIs launched in last 7 days\n regions: ['us-west-2', 'eu-west-1'], // Exclude AMIs in specific regions\n sharedAccounts: ['123456789012'], // Exclude AMIs shared with specific accounts\n tags: {\n Protected: 'true',\n Environment: 'production'\n }\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Team: 'infrastructure' }\n }\n});\n```\n\n##### Image Exclusion Rules\n\nExclude Image Builder images with protective tags:\n\n```ts\nconst excludeImagesPolicy = new imagebuilder.LifecyclePolicy(this, 'ExcludeImagesPolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.CONTAINER_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { countFilter: { count: 20 } },\n exclusionRules: {\n imageExclusionRules: {\n tags: {\n DoNotDelete: 'true',\n Critical: 'baseline'\n }\n }\n }\n }\n ],\n resourceSelection: {\n tags: { Application: 'frontend' }\n }\n});\n```\n\n#### Advanced Lifecycle Configuration\n\n##### Custom Execution Roles\n\nProvide your own IAM execution role with specific permissions:\n\n```ts\nconst executionRole = new iam.Role(this, 'LifecycleExecutionRole', {\n assumedBy: new iam.ServicePrincipal('imagebuilder.amazonaws.com'),\n managedPolicies: [\n iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/EC2ImageBuilderLifecycleExecutionPolicy')\n ]\n});\n\nconst customRolePolicy = new imagebuilder.LifecyclePolicy(this, 'CustomRolePolicy', {\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n executionRole: executionRole,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(45) } }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'development' }\n }\n});\n```\n\n##### Lifecycle Policy Status\n\nControl whether the lifecycle policy is active:\n\n```ts\nconst disabledPolicy = new imagebuilder.LifecyclePolicy(this, 'DisabledPolicy', {\n lifecyclePolicyName: 'my-disabled-policy',\n description: 'A lifecycle policy that is temporarily disabled',\n status: imagebuilder.LifecyclePolicyStatus.DISABLED,\n resourceType: imagebuilder.LifecyclePolicyResourceType.AMI_IMAGE,\n details: [\n {\n action: { type: imagebuilder.LifecyclePolicyActionType.DELETE },\n filter: { ageFilter: { age: Duration.days(30) } }\n }\n ],\n resourceSelection: {\n tags: { Environment: 'testing' }\n },\n tags: {\n Owner: 'DevOps',\n CostCenter: 'Engineering'\n }\n});\n```\n\n##### Importing Lifecycle Policies\n\nReference lifecycle policies created outside CDK:\n\n```ts\n// Import by name\nconst importedByName = imagebuilder.LifecyclePolicy.fromLifecyclePolicyName(\n this,\n 'ImportedByName',\n 'existing-lifecycle-policy'\n);\n\n// Import by ARN\nconst importedByArn = imagebuilder.LifecyclePolicy.fromLifecyclePolicyArn(\n this,\n 'ImportedByArn',\n 'arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/my-policy'\n);\n\nimportedByName.grantRead(lambdaRole);\nimportedByArn.grant(lambdaRole, 'imagebuilder:UpdateLifecyclePolicy');\n```\n"
|
|
8469
8498
|
},
|
|
8470
8499
|
"repository": {
|
|
8471
8500
|
"directory": "packages/@aws-cdk/aws-imagebuilder-alpha",
|
|
@@ -8503,17 +8532,18 @@
|
|
|
8503
8532
|
}
|
|
8504
8533
|
},
|
|
8505
8534
|
"types": {
|
|
8506
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
8535
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent": {
|
|
8536
|
+
"abstract": true,
|
|
8507
8537
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8508
8538
|
"docs": {
|
|
8509
8539
|
"stability": "experimental",
|
|
8510
|
-
"summary": "Helper class for working with Amazon-managed
|
|
8511
|
-
"example": "
|
|
8540
|
+
"summary": "Helper class for working with Amazon-managed components.",
|
|
8541
|
+
"example": "const imageRecipe = new imagebuilder.ImageRecipe(this, 'AmazonManagedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: imagebuilder.AmazonManagedComponent.updateOs(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n })\n },\n {\n component: imagebuilder.AmazonManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n })\n }\n ]\n});",
|
|
8512
8542
|
"custom": {
|
|
8513
8543
|
"exampleMetadata": "infused"
|
|
8514
8544
|
}
|
|
8515
8545
|
},
|
|
8516
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8546
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent",
|
|
8517
8547
|
"initializer": {
|
|
8518
8548
|
"docs": {
|
|
8519
8549
|
"stability": "experimental"
|
|
@@ -8521,21 +8551,20 @@
|
|
|
8521
8551
|
},
|
|
8522
8552
|
"kind": "class",
|
|
8523
8553
|
"locationInModule": {
|
|
8524
|
-
"filename": "lib/amazon-managed-
|
|
8525
|
-
"line":
|
|
8554
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8555
|
+
"line": 49
|
|
8526
8556
|
},
|
|
8527
8557
|
"methods": [
|
|
8528
8558
|
{
|
|
8529
8559
|
"docs": {
|
|
8530
|
-
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
8531
8560
|
"stability": "experimental",
|
|
8532
|
-
"summary": "Imports the
|
|
8561
|
+
"summary": "Imports the AWS CLI v2 Amazon-managed component."
|
|
8533
8562
|
},
|
|
8534
8563
|
"locationInModule": {
|
|
8535
|
-
"filename": "lib/amazon-managed-
|
|
8536
|
-
"line":
|
|
8564
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8565
|
+
"line": 57
|
|
8537
8566
|
},
|
|
8538
|
-
"name": "
|
|
8567
|
+
"name": "awsCliV2",
|
|
8539
8568
|
"parameters": [
|
|
8540
8569
|
{
|
|
8541
8570
|
"docs": {
|
|
@@ -8557,32 +8586,31 @@
|
|
|
8557
8586
|
},
|
|
8558
8587
|
{
|
|
8559
8588
|
"docs": {
|
|
8560
|
-
"summary": "The Amazon-managed
|
|
8589
|
+
"summary": "The Amazon-managed component options."
|
|
8561
8590
|
},
|
|
8562
8591
|
"name": "opts",
|
|
8563
8592
|
"type": {
|
|
8564
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8593
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8565
8594
|
}
|
|
8566
8595
|
}
|
|
8567
8596
|
],
|
|
8568
8597
|
"returns": {
|
|
8569
8598
|
"type": {
|
|
8570
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8599
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8571
8600
|
}
|
|
8572
8601
|
},
|
|
8573
8602
|
"static": true
|
|
8574
8603
|
},
|
|
8575
8604
|
{
|
|
8576
8605
|
"docs": {
|
|
8577
|
-
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
8578
8606
|
"stability": "experimental",
|
|
8579
|
-
"summary": "Imports
|
|
8607
|
+
"summary": "Imports an Amazon-managed component from its attributes."
|
|
8580
8608
|
},
|
|
8581
8609
|
"locationInModule": {
|
|
8582
|
-
"filename": "lib/amazon-managed-
|
|
8583
|
-
"line":
|
|
8610
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8611
|
+
"line": 125
|
|
8584
8612
|
},
|
|
8585
|
-
"name": "
|
|
8613
|
+
"name": "fromAmazonManagedComponentAttributes",
|
|
8586
8614
|
"parameters": [
|
|
8587
8615
|
{
|
|
8588
8616
|
"docs": {
|
|
@@ -8604,17 +8632,17 @@
|
|
|
8604
8632
|
},
|
|
8605
8633
|
{
|
|
8606
8634
|
"docs": {
|
|
8607
|
-
"summary": "The Amazon-managed
|
|
8635
|
+
"summary": "The Amazon-managed component attributes."
|
|
8608
8636
|
},
|
|
8609
|
-
"name": "
|
|
8637
|
+
"name": "attrs",
|
|
8610
8638
|
"type": {
|
|
8611
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8639
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentAttributes"
|
|
8612
8640
|
}
|
|
8613
8641
|
}
|
|
8614
8642
|
],
|
|
8615
8643
|
"returns": {
|
|
8616
8644
|
"type": {
|
|
8617
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8645
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8618
8646
|
}
|
|
8619
8647
|
},
|
|
8620
8648
|
"static": true
|
|
@@ -8622,13 +8650,13 @@
|
|
|
8622
8650
|
{
|
|
8623
8651
|
"docs": {
|
|
8624
8652
|
"stability": "experimental",
|
|
8625
|
-
"summary": "Imports an Amazon-managed
|
|
8653
|
+
"summary": "Imports an Amazon-managed component from its name."
|
|
8626
8654
|
},
|
|
8627
8655
|
"locationInModule": {
|
|
8628
|
-
"filename": "lib/amazon-managed-
|
|
8629
|
-
"line":
|
|
8656
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8657
|
+
"line": 148
|
|
8630
8658
|
},
|
|
8631
|
-
"name": "
|
|
8659
|
+
"name": "fromAmazonManagedComponentName",
|
|
8632
8660
|
"parameters": [
|
|
8633
8661
|
{
|
|
8634
8662
|
"docs": {
|
|
@@ -8650,17 +8678,17 @@
|
|
|
8650
8678
|
},
|
|
8651
8679
|
{
|
|
8652
8680
|
"docs": {
|
|
8653
|
-
"summary": "- The Amazon-managed
|
|
8681
|
+
"summary": "- The name of the Amazon-managed component."
|
|
8654
8682
|
},
|
|
8655
|
-
"name": "
|
|
8683
|
+
"name": "amazonManagedComponentName",
|
|
8656
8684
|
"type": {
|
|
8657
|
-
"
|
|
8685
|
+
"primitive": "string"
|
|
8658
8686
|
}
|
|
8659
8687
|
}
|
|
8660
8688
|
],
|
|
8661
8689
|
"returns": {
|
|
8662
8690
|
"type": {
|
|
8663
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8691
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8664
8692
|
}
|
|
8665
8693
|
},
|
|
8666
8694
|
"static": true
|
|
@@ -8668,13 +8696,13 @@
|
|
|
8668
8696
|
{
|
|
8669
8697
|
"docs": {
|
|
8670
8698
|
"stability": "experimental",
|
|
8671
|
-
"summary": "Imports
|
|
8699
|
+
"summary": "Imports the hello world Amazon-managed component."
|
|
8672
8700
|
},
|
|
8673
8701
|
"locationInModule": {
|
|
8674
|
-
"filename": "lib/amazon-managed-
|
|
8675
|
-
"line":
|
|
8702
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8703
|
+
"line": 68
|
|
8676
8704
|
},
|
|
8677
|
-
"name": "
|
|
8705
|
+
"name": "helloWorld",
|
|
8678
8706
|
"parameters": [
|
|
8679
8707
|
{
|
|
8680
8708
|
"docs": {
|
|
@@ -8696,32 +8724,31 @@
|
|
|
8696
8724
|
},
|
|
8697
8725
|
{
|
|
8698
8726
|
"docs": {
|
|
8699
|
-
"summary": "
|
|
8727
|
+
"summary": "The Amazon-managed component options."
|
|
8700
8728
|
},
|
|
8701
|
-
"name": "
|
|
8729
|
+
"name": "opts",
|
|
8702
8730
|
"type": {
|
|
8703
|
-
"
|
|
8731
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8704
8732
|
}
|
|
8705
8733
|
}
|
|
8706
8734
|
],
|
|
8707
8735
|
"returns": {
|
|
8708
8736
|
"type": {
|
|
8709
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8737
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8710
8738
|
}
|
|
8711
8739
|
},
|
|
8712
8740
|
"static": true
|
|
8713
8741
|
},
|
|
8714
8742
|
{
|
|
8715
8743
|
"docs": {
|
|
8716
|
-
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
8717
8744
|
"stability": "experimental",
|
|
8718
|
-
"summary": "Imports the
|
|
8745
|
+
"summary": "Imports the Python 3 Amazon-managed component."
|
|
8719
8746
|
},
|
|
8720
8747
|
"locationInModule": {
|
|
8721
|
-
"filename": "lib/amazon-managed-
|
|
8722
|
-
"line":
|
|
8748
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8749
|
+
"line": 79
|
|
8723
8750
|
},
|
|
8724
|
-
"name": "
|
|
8751
|
+
"name": "python3",
|
|
8725
8752
|
"parameters": [
|
|
8726
8753
|
{
|
|
8727
8754
|
"docs": {
|
|
@@ -8743,32 +8770,31 @@
|
|
|
8743
8770
|
},
|
|
8744
8771
|
{
|
|
8745
8772
|
"docs": {
|
|
8746
|
-
"summary": "The Amazon-managed
|
|
8773
|
+
"summary": "The Amazon-managed component options."
|
|
8747
8774
|
},
|
|
8748
8775
|
"name": "opts",
|
|
8749
8776
|
"type": {
|
|
8750
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8777
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8751
8778
|
}
|
|
8752
8779
|
}
|
|
8753
8780
|
],
|
|
8754
8781
|
"returns": {
|
|
8755
8782
|
"type": {
|
|
8756
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8783
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8757
8784
|
}
|
|
8758
8785
|
},
|
|
8759
8786
|
"static": true
|
|
8760
8787
|
},
|
|
8761
8788
|
{
|
|
8762
8789
|
"docs": {
|
|
8763
|
-
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
8764
8790
|
"stability": "experimental",
|
|
8765
|
-
"summary": "Imports the
|
|
8791
|
+
"summary": "Imports the reboot Amazon-managed component."
|
|
8766
8792
|
},
|
|
8767
8793
|
"locationInModule": {
|
|
8768
|
-
"filename": "lib/amazon-managed-
|
|
8769
|
-
"line":
|
|
8794
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8795
|
+
"line": 90
|
|
8770
8796
|
},
|
|
8771
|
-
"name": "
|
|
8797
|
+
"name": "reboot",
|
|
8772
8798
|
"parameters": [
|
|
8773
8799
|
{
|
|
8774
8800
|
"docs": {
|
|
@@ -8790,32 +8816,32 @@
|
|
|
8790
8816
|
},
|
|
8791
8817
|
{
|
|
8792
8818
|
"docs": {
|
|
8793
|
-
"summary": "The Amazon-managed
|
|
8819
|
+
"summary": "The Amazon-managed component options."
|
|
8794
8820
|
},
|
|
8795
8821
|
"name": "opts",
|
|
8796
8822
|
"type": {
|
|
8797
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8823
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8798
8824
|
}
|
|
8799
8825
|
}
|
|
8800
8826
|
],
|
|
8801
8827
|
"returns": {
|
|
8802
8828
|
"type": {
|
|
8803
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8829
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8804
8830
|
}
|
|
8805
8831
|
},
|
|
8806
8832
|
"static": true
|
|
8807
8833
|
},
|
|
8808
8834
|
{
|
|
8809
8835
|
"docs": {
|
|
8810
|
-
"see": "https://aws.amazon.com/
|
|
8836
|
+
"see": "https://docs.aws.amazon.com/imagebuilder/latest/userguide/ib-stig.html",
|
|
8811
8837
|
"stability": "experimental",
|
|
8812
|
-
"summary": "Imports the
|
|
8838
|
+
"summary": "Imports the STIG hardening Amazon-managed component."
|
|
8813
8839
|
},
|
|
8814
8840
|
"locationInModule": {
|
|
8815
|
-
"filename": "lib/amazon-managed-
|
|
8816
|
-
"line":
|
|
8841
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8842
|
+
"line": 103
|
|
8817
8843
|
},
|
|
8818
|
-
"name": "
|
|
8844
|
+
"name": "stigBuild",
|
|
8819
8845
|
"parameters": [
|
|
8820
8846
|
{
|
|
8821
8847
|
"docs": {
|
|
@@ -8837,32 +8863,31 @@
|
|
|
8837
8863
|
},
|
|
8838
8864
|
{
|
|
8839
8865
|
"docs": {
|
|
8840
|
-
"summary": "The Amazon-managed
|
|
8866
|
+
"summary": "The Amazon-managed component options."
|
|
8841
8867
|
},
|
|
8842
8868
|
"name": "opts",
|
|
8843
8869
|
"type": {
|
|
8844
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8870
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8845
8871
|
}
|
|
8846
8872
|
}
|
|
8847
8873
|
],
|
|
8848
8874
|
"returns": {
|
|
8849
8875
|
"type": {
|
|
8850
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8876
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8851
8877
|
}
|
|
8852
8878
|
},
|
|
8853
8879
|
"static": true
|
|
8854
8880
|
},
|
|
8855
8881
|
{
|
|
8856
8882
|
"docs": {
|
|
8857
|
-
"see": "https://aws.amazon.com/linux/commercial-linux/faqs/",
|
|
8858
8883
|
"stability": "experimental",
|
|
8859
|
-
"summary": "Imports the
|
|
8884
|
+
"summary": "Imports the OS update Amazon-managed component."
|
|
8860
8885
|
},
|
|
8861
8886
|
"locationInModule": {
|
|
8862
|
-
"filename": "lib/amazon-managed-
|
|
8863
|
-
"line":
|
|
8887
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8888
|
+
"line": 114
|
|
8864
8889
|
},
|
|
8865
|
-
"name": "
|
|
8890
|
+
"name": "updateOs",
|
|
8866
8891
|
"parameters": [
|
|
8867
8892
|
{
|
|
8868
8893
|
"docs": {
|
|
@@ -8884,32 +8909,170 @@
|
|
|
8884
8909
|
},
|
|
8885
8910
|
{
|
|
8886
8911
|
"docs": {
|
|
8887
|
-
"summary": "The Amazon-managed
|
|
8912
|
+
"summary": "The Amazon-managed component attributes."
|
|
8888
8913
|
},
|
|
8889
8914
|
"name": "opts",
|
|
8890
8915
|
"type": {
|
|
8891
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8916
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8892
8917
|
}
|
|
8893
8918
|
}
|
|
8894
8919
|
],
|
|
8895
8920
|
"returns": {
|
|
8896
8921
|
"type": {
|
|
8897
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8922
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8898
8923
|
}
|
|
8899
8924
|
},
|
|
8900
8925
|
"static": true
|
|
8926
|
+
}
|
|
8927
|
+
],
|
|
8928
|
+
"name": "AmazonManagedComponent",
|
|
8929
|
+
"symbolId": "lib/amazon-managed-component:AmazonManagedComponent"
|
|
8930
|
+
},
|
|
8931
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentAttributes": {
|
|
8932
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8933
|
+
"datatype": true,
|
|
8934
|
+
"docs": {
|
|
8935
|
+
"stability": "experimental",
|
|
8936
|
+
"summary": "Properties for an EC2 Image Builder Amazon-managed component.",
|
|
8937
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as imagebuilder_alpha from '@aws-cdk/aws-imagebuilder-alpha';\nconst amazonManagedComponentAttributes: imagebuilder_alpha.AmazonManagedComponentAttributes = {\n componentName: 'componentName',\n\n // the properties below are optional\n componentVersion: 'componentVersion',\n};",
|
|
8938
|
+
"custom": {
|
|
8939
|
+
"exampleMetadata": "fixture=_generated"
|
|
8940
|
+
}
|
|
8941
|
+
},
|
|
8942
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentAttributes",
|
|
8943
|
+
"kind": "interface",
|
|
8944
|
+
"locationInModule": {
|
|
8945
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8946
|
+
"line": 10
|
|
8947
|
+
},
|
|
8948
|
+
"name": "AmazonManagedComponentAttributes",
|
|
8949
|
+
"properties": [
|
|
8950
|
+
{
|
|
8951
|
+
"abstract": true,
|
|
8952
|
+
"docs": {
|
|
8953
|
+
"stability": "experimental",
|
|
8954
|
+
"summary": "The name of the Amazon-managed component."
|
|
8955
|
+
},
|
|
8956
|
+
"immutable": true,
|
|
8957
|
+
"locationInModule": {
|
|
8958
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8959
|
+
"line": 14
|
|
8960
|
+
},
|
|
8961
|
+
"name": "componentName",
|
|
8962
|
+
"type": {
|
|
8963
|
+
"primitive": "string"
|
|
8964
|
+
}
|
|
8901
8965
|
},
|
|
8902
8966
|
{
|
|
8967
|
+
"abstract": true,
|
|
8903
8968
|
"docs": {
|
|
8904
|
-
"
|
|
8969
|
+
"default": "- the latest version of the component, x.x.x",
|
|
8905
8970
|
"stability": "experimental",
|
|
8906
|
-
"summary": "
|
|
8971
|
+
"summary": "The version of the Amazon-managed component."
|
|
8972
|
+
},
|
|
8973
|
+
"immutable": true,
|
|
8974
|
+
"locationInModule": {
|
|
8975
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8976
|
+
"line": 21
|
|
8977
|
+
},
|
|
8978
|
+
"name": "componentVersion",
|
|
8979
|
+
"optional": true,
|
|
8980
|
+
"type": {
|
|
8981
|
+
"primitive": "string"
|
|
8982
|
+
}
|
|
8983
|
+
}
|
|
8984
|
+
],
|
|
8985
|
+
"symbolId": "lib/amazon-managed-component:AmazonManagedComponentAttributes"
|
|
8986
|
+
},
|
|
8987
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions": {
|
|
8988
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8989
|
+
"datatype": true,
|
|
8990
|
+
"docs": {
|
|
8991
|
+
"stability": "experimental",
|
|
8992
|
+
"summary": "Options for selecting a predefined Amazon-managed image.",
|
|
8993
|
+
"example": "const imageRecipe = new imagebuilder.ImageRecipe(this, 'AmazonManagedImageRecipe', {\n baseImage: imagebuilder.BaseImage.fromSsmParameterName(\n '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'\n ),\n components: [\n {\n component: imagebuilder.AmazonManagedComponent.updateOs(this, 'UpdateOS', {\n platform: imagebuilder.Platform.LINUX\n })\n },\n {\n component: imagebuilder.AmazonManagedComponent.awsCliV2(this, 'AwsCli', {\n platform: imagebuilder.Platform.LINUX\n })\n }\n ]\n});",
|
|
8994
|
+
"custom": {
|
|
8995
|
+
"exampleMetadata": "infused"
|
|
8996
|
+
}
|
|
8997
|
+
},
|
|
8998
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions",
|
|
8999
|
+
"kind": "interface",
|
|
9000
|
+
"locationInModule": {
|
|
9001
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
9002
|
+
"line": 27
|
|
9003
|
+
},
|
|
9004
|
+
"name": "AmazonManagedComponentOptions",
|
|
9005
|
+
"properties": [
|
|
9006
|
+
{
|
|
9007
|
+
"abstract": true,
|
|
9008
|
+
"docs": {
|
|
9009
|
+
"stability": "experimental",
|
|
9010
|
+
"summary": "The platform of the Amazon-managed component."
|
|
9011
|
+
},
|
|
9012
|
+
"immutable": true,
|
|
9013
|
+
"locationInModule": {
|
|
9014
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
9015
|
+
"line": 31
|
|
9016
|
+
},
|
|
9017
|
+
"name": "platform",
|
|
9018
|
+
"type": {
|
|
9019
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.Platform"
|
|
9020
|
+
}
|
|
9021
|
+
},
|
|
9022
|
+
{
|
|
9023
|
+
"abstract": true,
|
|
9024
|
+
"docs": {
|
|
9025
|
+
"default": "- the latest version of the component, x.x.x",
|
|
9026
|
+
"stability": "experimental",
|
|
9027
|
+
"summary": "The version of the Amazon-managed component."
|
|
9028
|
+
},
|
|
9029
|
+
"immutable": true,
|
|
9030
|
+
"locationInModule": {
|
|
9031
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
9032
|
+
"line": 38
|
|
9033
|
+
},
|
|
9034
|
+
"name": "componentVersion",
|
|
9035
|
+
"optional": true,
|
|
9036
|
+
"type": {
|
|
9037
|
+
"primitive": "string"
|
|
9038
|
+
}
|
|
9039
|
+
}
|
|
9040
|
+
],
|
|
9041
|
+
"symbolId": "lib/amazon-managed-component:AmazonManagedComponentOptions"
|
|
9042
|
+
},
|
|
9043
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage": {
|
|
9044
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9045
|
+
"docs": {
|
|
9046
|
+
"stability": "experimental",
|
|
9047
|
+
"summary": "Helper class for working with Amazon-managed images.",
|
|
9048
|
+
"example": "// Amazon Linux 2023 AMI for x86_64\nconst amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Ubuntu 22.04 AMI for ARM64\nconst ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.ARM64\n});\n\n// Windows Server 2022 Full AMI\nconst windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Use as base image in recipe\nconst managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {\n baseImage: amazonLinux2023Ami.toBaseImage()\n});",
|
|
9049
|
+
"custom": {
|
|
9050
|
+
"exampleMetadata": "infused"
|
|
9051
|
+
}
|
|
9052
|
+
},
|
|
9053
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage",
|
|
9054
|
+
"initializer": {
|
|
9055
|
+
"docs": {
|
|
9056
|
+
"stability": "experimental"
|
|
9057
|
+
}
|
|
9058
|
+
},
|
|
9059
|
+
"kind": "class",
|
|
9060
|
+
"locationInModule": {
|
|
9061
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9062
|
+
"line": 54
|
|
9063
|
+
},
|
|
9064
|
+
"methods": [
|
|
9065
|
+
{
|
|
9066
|
+
"docs": {
|
|
9067
|
+
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
9068
|
+
"stability": "experimental",
|
|
9069
|
+
"summary": "Imports the Amazon Linux 2 Amazon-managed image."
|
|
8907
9070
|
},
|
|
8908
9071
|
"locationInModule": {
|
|
8909
9072
|
"filename": "lib/amazon-managed-image.ts",
|
|
8910
|
-
"line":
|
|
9073
|
+
"line": 65
|
|
8911
9074
|
},
|
|
8912
|
-
"name": "
|
|
9075
|
+
"name": "amazonLinux2",
|
|
8913
9076
|
"parameters": [
|
|
8914
9077
|
{
|
|
8915
9078
|
"docs": {
|
|
@@ -8948,15 +9111,15 @@
|
|
|
8948
9111
|
},
|
|
8949
9112
|
{
|
|
8950
9113
|
"docs": {
|
|
8951
|
-
"see": "https://
|
|
9114
|
+
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
8952
9115
|
"stability": "experimental",
|
|
8953
|
-
"summary": "Imports the
|
|
9116
|
+
"summary": "Imports the Amazon Linux 2023 Amazon-managed image."
|
|
8954
9117
|
},
|
|
8955
9118
|
"locationInModule": {
|
|
8956
9119
|
"filename": "lib/amazon-managed-image.ts",
|
|
8957
|
-
"line":
|
|
9120
|
+
"line": 79
|
|
8958
9121
|
},
|
|
8959
|
-
"name": "
|
|
9122
|
+
"name": "amazonLinux2023",
|
|
8960
9123
|
"parameters": [
|
|
8961
9124
|
{
|
|
8962
9125
|
"docs": {
|
|
@@ -8995,15 +9158,14 @@
|
|
|
8995
9158
|
},
|
|
8996
9159
|
{
|
|
8997
9160
|
"docs": {
|
|
8998
|
-
"see": "https://hub.docker.com/r/microsoft/windows-servercore",
|
|
8999
9161
|
"stability": "experimental",
|
|
9000
|
-
"summary": "Imports
|
|
9162
|
+
"summary": "Imports an Amazon-managed image from its attributes."
|
|
9001
9163
|
},
|
|
9002
9164
|
"locationInModule": {
|
|
9003
9165
|
"filename": "lib/amazon-managed-image.ts",
|
|
9004
|
-
"line":
|
|
9166
|
+
"line": 276
|
|
9005
9167
|
},
|
|
9006
|
-
"name": "
|
|
9168
|
+
"name": "fromAmazonManagedImageAttributes",
|
|
9007
9169
|
"parameters": [
|
|
9008
9170
|
{
|
|
9009
9171
|
"docs": {
|
|
@@ -9025,11 +9187,11 @@
|
|
|
9025
9187
|
},
|
|
9026
9188
|
{
|
|
9027
9189
|
"docs": {
|
|
9028
|
-
"summary": "The Amazon-managed image attributes."
|
|
9190
|
+
"summary": "- The Amazon-managed image attributes."
|
|
9029
9191
|
},
|
|
9030
|
-
"name": "
|
|
9192
|
+
"name": "attrs",
|
|
9031
9193
|
"type": {
|
|
9032
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
9194
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes"
|
|
9033
9195
|
}
|
|
9034
9196
|
}
|
|
9035
9197
|
],
|
|
@@ -9042,15 +9204,14 @@
|
|
|
9042
9204
|
},
|
|
9043
9205
|
{
|
|
9044
9206
|
"docs": {
|
|
9045
|
-
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9046
9207
|
"stability": "experimental",
|
|
9047
|
-
"summary": "Imports
|
|
9208
|
+
"summary": "Imports an Amazon-managed image from its name."
|
|
9048
9209
|
},
|
|
9049
9210
|
"locationInModule": {
|
|
9050
9211
|
"filename": "lib/amazon-managed-image.ts",
|
|
9051
|
-
"line":
|
|
9212
|
+
"line": 300
|
|
9052
9213
|
},
|
|
9053
|
-
"name": "
|
|
9214
|
+
"name": "fromAmazonManagedImageName",
|
|
9054
9215
|
"parameters": [
|
|
9055
9216
|
{
|
|
9056
9217
|
"docs": {
|
|
@@ -9072,11 +9233,11 @@
|
|
|
9072
9233
|
},
|
|
9073
9234
|
{
|
|
9074
9235
|
"docs": {
|
|
9075
|
-
"summary": "The Amazon-managed image
|
|
9236
|
+
"summary": "- The name of the Amazon-managed image."
|
|
9076
9237
|
},
|
|
9077
|
-
"name": "
|
|
9238
|
+
"name": "amazonManagedImageName",
|
|
9078
9239
|
"type": {
|
|
9079
|
-
"
|
|
9240
|
+
"primitive": "string"
|
|
9080
9241
|
}
|
|
9081
9242
|
}
|
|
9082
9243
|
],
|
|
@@ -9089,15 +9250,15 @@
|
|
|
9089
9250
|
},
|
|
9090
9251
|
{
|
|
9091
9252
|
"docs": {
|
|
9092
|
-
"see": "https://
|
|
9253
|
+
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
9093
9254
|
"stability": "experimental",
|
|
9094
|
-
"summary": "Imports the
|
|
9255
|
+
"summary": "Imports the macOS 14 Amazon-managed image."
|
|
9095
9256
|
},
|
|
9096
9257
|
"locationInModule": {
|
|
9097
9258
|
"filename": "lib/amazon-managed-image.ts",
|
|
9098
|
-
"line":
|
|
9259
|
+
"line": 252
|
|
9099
9260
|
},
|
|
9100
|
-
"name": "
|
|
9261
|
+
"name": "macOS14",
|
|
9101
9262
|
"parameters": [
|
|
9102
9263
|
{
|
|
9103
9264
|
"docs": {
|
|
@@ -9136,15 +9297,15 @@
|
|
|
9136
9297
|
},
|
|
9137
9298
|
{
|
|
9138
9299
|
"docs": {
|
|
9139
|
-
"see": "https://docs.aws.amazon.com/
|
|
9300
|
+
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
9140
9301
|
"stability": "experimental",
|
|
9141
|
-
"summary": "Imports the
|
|
9302
|
+
"summary": "Imports the macOS 15 Amazon-managed image."
|
|
9142
9303
|
},
|
|
9143
9304
|
"locationInModule": {
|
|
9144
9305
|
"filename": "lib/amazon-managed-image.ts",
|
|
9145
|
-
"line":
|
|
9306
|
+
"line": 265
|
|
9146
9307
|
},
|
|
9147
|
-
"name": "
|
|
9308
|
+
"name": "macOS15",
|
|
9148
9309
|
"parameters": [
|
|
9149
9310
|
{
|
|
9150
9311
|
"docs": {
|
|
@@ -9183,15 +9344,15 @@
|
|
|
9183
9344
|
},
|
|
9184
9345
|
{
|
|
9185
9346
|
"docs": {
|
|
9186
|
-
"see": "https://
|
|
9347
|
+
"see": "https://aws.amazon.com/partners/redhat/faqs",
|
|
9187
9348
|
"stability": "experimental",
|
|
9188
|
-
"summary": "Imports the
|
|
9349
|
+
"summary": "Imports the Red Hat Enterprise Linux 10 Amazon-managed image."
|
|
9189
9350
|
},
|
|
9190
9351
|
"locationInModule": {
|
|
9191
9352
|
"filename": "lib/amazon-managed-image.ts",
|
|
9192
|
-
"line":
|
|
9353
|
+
"line": 92
|
|
9193
9354
|
},
|
|
9194
|
-
"name": "
|
|
9355
|
+
"name": "redHatEnterpriseLinux10",
|
|
9195
9356
|
"parameters": [
|
|
9196
9357
|
{
|
|
9197
9358
|
"docs": {
|
|
@@ -9230,15 +9391,15 @@
|
|
|
9230
9391
|
},
|
|
9231
9392
|
{
|
|
9232
9393
|
"docs": {
|
|
9233
|
-
"see": "https://
|
|
9394
|
+
"see": "https://aws.amazon.com/linux/commercial-linux/faqs/",
|
|
9234
9395
|
"stability": "experimental",
|
|
9235
|
-
"summary": "Imports the
|
|
9396
|
+
"summary": "Imports the SUSE Linux Enterprise Server 15 Amazon-managed image."
|
|
9236
9397
|
},
|
|
9237
9398
|
"locationInModule": {
|
|
9238
9399
|
"filename": "lib/amazon-managed-image.ts",
|
|
9239
|
-
"line":
|
|
9400
|
+
"line": 105
|
|
9240
9401
|
},
|
|
9241
|
-
"name": "
|
|
9402
|
+
"name": "suseLinuxEnterpriseServer15",
|
|
9242
9403
|
"parameters": [
|
|
9243
9404
|
{
|
|
9244
9405
|
"docs": {
|
|
@@ -9277,15 +9438,15 @@
|
|
|
9277
9438
|
},
|
|
9278
9439
|
{
|
|
9279
9440
|
"docs": {
|
|
9280
|
-
"see": "https://
|
|
9441
|
+
"see": "https://hub.docker.com/_/ubuntu",
|
|
9281
9442
|
"stability": "experimental",
|
|
9282
|
-
"summary": "Imports the
|
|
9443
|
+
"summary": "Imports the Ubuntu 22.04 Amazon-managed image."
|
|
9283
9444
|
},
|
|
9284
9445
|
"locationInModule": {
|
|
9285
9446
|
"filename": "lib/amazon-managed-image.ts",
|
|
9286
|
-
"line":
|
|
9447
|
+
"line": 119
|
|
9287
9448
|
},
|
|
9288
|
-
"name": "
|
|
9449
|
+
"name": "ubuntuServer2204",
|
|
9289
9450
|
"parameters": [
|
|
9290
9451
|
{
|
|
9291
9452
|
"docs": {
|
|
@@ -9324,15 +9485,15 @@
|
|
|
9324
9485
|
},
|
|
9325
9486
|
{
|
|
9326
9487
|
"docs": {
|
|
9327
|
-
"see": "https://
|
|
9488
|
+
"see": "https://hub.docker.com/_/ubuntu",
|
|
9328
9489
|
"stability": "experimental",
|
|
9329
|
-
"summary": "Imports the
|
|
9490
|
+
"summary": "Imports the Ubuntu 24.04 Amazon-managed image."
|
|
9330
9491
|
},
|
|
9331
9492
|
"locationInModule": {
|
|
9332
9493
|
"filename": "lib/amazon-managed-image.ts",
|
|
9333
|
-
"line":
|
|
9494
|
+
"line": 133
|
|
9334
9495
|
},
|
|
9335
|
-
"name": "
|
|
9496
|
+
"name": "ubuntuServer2404",
|
|
9336
9497
|
"parameters": [
|
|
9337
9498
|
{
|
|
9338
9499
|
"docs": {
|
|
@@ -9368,361 +9529,419 @@
|
|
|
9368
9529
|
}
|
|
9369
9530
|
},
|
|
9370
9531
|
"static": true
|
|
9371
|
-
}
|
|
9372
|
-
],
|
|
9373
|
-
"name": "AmazonManagedImage",
|
|
9374
|
-
"symbolId": "lib/amazon-managed-image:AmazonManagedImage"
|
|
9375
|
-
},
|
|
9376
|
-
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes": {
|
|
9377
|
-
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9378
|
-
"datatype": true,
|
|
9379
|
-
"docs": {
|
|
9380
|
-
"stability": "experimental",
|
|
9381
|
-
"summary": "Attributes for importing an Amazon-managed image by name (and optionally a version).",
|
|
9382
|
-
"example": "// Import by name\nconst managedImageByName = imagebuilder.AmazonManagedImage.fromAmazonManagedImageName(\n this,\n 'ManagedImageByName',\n 'amazon-linux-2023-x86'\n);\n\n// Import by attributes with specific version\nconst managedImageByAttributes = imagebuilder.AmazonManagedImage.fromAmazonManagedImageAttributes(this, 'ManagedImageByAttributes', {\n imageName: 'ubuntu-server-22-lts-x86',\n imageVersion: '2024.11.25'\n});",
|
|
9383
|
-
"custom": {
|
|
9384
|
-
"exampleMetadata": "infused"
|
|
9385
|
-
}
|
|
9386
|
-
},
|
|
9387
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes",
|
|
9388
|
-
"kind": "interface",
|
|
9389
|
-
"locationInModule": {
|
|
9390
|
-
"filename": "lib/amazon-managed-image.ts",
|
|
9391
|
-
"line": 9
|
|
9392
|
-
},
|
|
9393
|
-
"name": "AmazonManagedImageAttributes",
|
|
9394
|
-
"properties": [
|
|
9395
|
-
{
|
|
9396
|
-
"abstract": true,
|
|
9397
|
-
"docs": {
|
|
9398
|
-
"remarks": "The provided name must be normalized by converting all alphabetical\ncharacters to lowercase, and replacing all spaces and underscores with hyphens.",
|
|
9399
|
-
"stability": "experimental",
|
|
9400
|
-
"summary": "The name of the Amazon-managed image."
|
|
9401
|
-
},
|
|
9402
|
-
"immutable": true,
|
|
9403
|
-
"locationInModule": {
|
|
9404
|
-
"filename": "lib/amazon-managed-image.ts",
|
|
9405
|
-
"line": 14
|
|
9406
|
-
},
|
|
9407
|
-
"name": "imageName",
|
|
9408
|
-
"type": {
|
|
9409
|
-
"primitive": "string"
|
|
9410
|
-
}
|
|
9411
9532
|
},
|
|
9412
9533
|
{
|
|
9413
|
-
"abstract": true,
|
|
9414
9534
|
"docs": {
|
|
9415
|
-
"
|
|
9535
|
+
"see": "https://hub.docker.com/r/microsoft/windows-servercore",
|
|
9416
9536
|
"stability": "experimental",
|
|
9417
|
-
"summary": "
|
|
9537
|
+
"summary": "Imports the Windows Server 2016 Core Amazon-managed image."
|
|
9418
9538
|
},
|
|
9419
|
-
"immutable": true,
|
|
9420
9539
|
"locationInModule": {
|
|
9421
9540
|
"filename": "lib/amazon-managed-image.ts",
|
|
9422
|
-
"line":
|
|
9423
|
-
},
|
|
9424
|
-
"name": "imageVersion",
|
|
9425
|
-
"optional": true,
|
|
9426
|
-
"type": {
|
|
9427
|
-
"primitive": "string"
|
|
9428
|
-
}
|
|
9429
|
-
}
|
|
9430
|
-
],
|
|
9431
|
-
"symbolId": "lib/amazon-managed-image:AmazonManagedImageAttributes"
|
|
9432
|
-
},
|
|
9433
|
-
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions": {
|
|
9434
|
-
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9435
|
-
"datatype": true,
|
|
9436
|
-
"docs": {
|
|
9437
|
-
"stability": "experimental",
|
|
9438
|
-
"summary": "Options for selecting a predefined Amazon-managed image.",
|
|
9439
|
-
"example": "// Amazon Linux 2023 AMI for x86_64\nconst amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Ubuntu 22.04 AMI for ARM64\nconst ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.ARM64\n});\n\n// Windows Server 2022 Full AMI\nconst windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Use as base image in recipe\nconst managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {\n baseImage: amazonLinux2023Ami.toBaseImage()\n});",
|
|
9440
|
-
"custom": {
|
|
9441
|
-
"exampleMetadata": "infused"
|
|
9442
|
-
}
|
|
9443
|
-
},
|
|
9444
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions",
|
|
9445
|
-
"kind": "interface",
|
|
9446
|
-
"locationInModule": {
|
|
9447
|
-
"filename": "lib/amazon-managed-image.ts",
|
|
9448
|
-
"line": 27
|
|
9449
|
-
},
|
|
9450
|
-
"name": "AmazonManagedImageOptions",
|
|
9451
|
-
"properties": [
|
|
9452
|
-
{
|
|
9453
|
-
"abstract": true,
|
|
9454
|
-
"docs": {
|
|
9455
|
-
"stability": "experimental",
|
|
9456
|
-
"summary": "The architecture of the Amazon-managed image."
|
|
9541
|
+
"line": 147
|
|
9457
9542
|
},
|
|
9458
|
-
"
|
|
9459
|
-
"
|
|
9460
|
-
|
|
9461
|
-
|
|
9543
|
+
"name": "windowsServer2016Core",
|
|
9544
|
+
"parameters": [
|
|
9545
|
+
{
|
|
9546
|
+
"docs": {
|
|
9547
|
+
"summary": "The construct scope."
|
|
9548
|
+
},
|
|
9549
|
+
"name": "scope",
|
|
9550
|
+
"type": {
|
|
9551
|
+
"fqn": "constructs.Construct"
|
|
9552
|
+
}
|
|
9553
|
+
},
|
|
9554
|
+
{
|
|
9555
|
+
"docs": {
|
|
9556
|
+
"summary": "Identifier of the construct."
|
|
9557
|
+
},
|
|
9558
|
+
"name": "id",
|
|
9559
|
+
"type": {
|
|
9560
|
+
"primitive": "string"
|
|
9561
|
+
}
|
|
9562
|
+
},
|
|
9563
|
+
{
|
|
9564
|
+
"docs": {
|
|
9565
|
+
"summary": "The Amazon-managed image attributes."
|
|
9566
|
+
},
|
|
9567
|
+
"name": "opts",
|
|
9568
|
+
"type": {
|
|
9569
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9570
|
+
}
|
|
9571
|
+
}
|
|
9572
|
+
],
|
|
9573
|
+
"returns": {
|
|
9574
|
+
"type": {
|
|
9575
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9576
|
+
}
|
|
9462
9577
|
},
|
|
9463
|
-
"
|
|
9464
|
-
"type": {
|
|
9465
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ImageArchitecture"
|
|
9466
|
-
}
|
|
9578
|
+
"static": true
|
|
9467
9579
|
},
|
|
9468
9580
|
{
|
|
9469
|
-
"abstract": true,
|
|
9470
9581
|
"docs": {
|
|
9582
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9471
9583
|
"stability": "experimental",
|
|
9472
|
-
"summary": "
|
|
9584
|
+
"summary": "Imports the Windows Server 2016 Full Amazon-managed image."
|
|
9473
9585
|
},
|
|
9474
|
-
"immutable": true,
|
|
9475
9586
|
"locationInModule": {
|
|
9476
9587
|
"filename": "lib/amazon-managed-image.ts",
|
|
9477
|
-
"line":
|
|
9588
|
+
"line": 160
|
|
9478
9589
|
},
|
|
9479
|
-
"name": "
|
|
9480
|
-
"
|
|
9481
|
-
|
|
9482
|
-
|
|
9590
|
+
"name": "windowsServer2016Full",
|
|
9591
|
+
"parameters": [
|
|
9592
|
+
{
|
|
9593
|
+
"docs": {
|
|
9594
|
+
"summary": "The construct scope."
|
|
9595
|
+
},
|
|
9596
|
+
"name": "scope",
|
|
9597
|
+
"type": {
|
|
9598
|
+
"fqn": "constructs.Construct"
|
|
9599
|
+
}
|
|
9600
|
+
},
|
|
9601
|
+
{
|
|
9602
|
+
"docs": {
|
|
9603
|
+
"summary": "Identifier of the construct."
|
|
9604
|
+
},
|
|
9605
|
+
"name": "id",
|
|
9606
|
+
"type": {
|
|
9607
|
+
"primitive": "string"
|
|
9608
|
+
}
|
|
9609
|
+
},
|
|
9610
|
+
{
|
|
9611
|
+
"docs": {
|
|
9612
|
+
"summary": "The Amazon-managed image attributes."
|
|
9613
|
+
},
|
|
9614
|
+
"name": "opts",
|
|
9615
|
+
"type": {
|
|
9616
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9617
|
+
}
|
|
9618
|
+
}
|
|
9619
|
+
],
|
|
9620
|
+
"returns": {
|
|
9621
|
+
"type": {
|
|
9622
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9623
|
+
}
|
|
9624
|
+
},
|
|
9625
|
+
"static": true
|
|
9483
9626
|
},
|
|
9484
9627
|
{
|
|
9485
|
-
"abstract": true,
|
|
9486
9628
|
"docs": {
|
|
9487
|
-
"
|
|
9629
|
+
"see": "https://hub.docker.com/r/microsoft/windows-servercore",
|
|
9488
9630
|
"stability": "experimental",
|
|
9489
|
-
"summary": "
|
|
9631
|
+
"summary": "Imports the Windows Server 2019 Core Amazon-managed image."
|
|
9490
9632
|
},
|
|
9491
|
-
"immutable": true,
|
|
9492
9633
|
"locationInModule": {
|
|
9493
9634
|
"filename": "lib/amazon-managed-image.ts",
|
|
9494
|
-
"line":
|
|
9635
|
+
"line": 174
|
|
9495
9636
|
},
|
|
9496
|
-
"name": "
|
|
9497
|
-
"
|
|
9498
|
-
|
|
9499
|
-
|
|
9500
|
-
|
|
9501
|
-
|
|
9502
|
-
|
|
9503
|
-
|
|
9504
|
-
|
|
9505
|
-
|
|
9506
|
-
|
|
9507
|
-
|
|
9508
|
-
|
|
9509
|
-
|
|
9510
|
-
|
|
9511
|
-
|
|
9512
|
-
|
|
9513
|
-
|
|
9514
|
-
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
|
|
9518
|
-
|
|
9519
|
-
|
|
9520
|
-
|
|
9521
|
-
|
|
9522
|
-
|
|
9523
|
-
|
|
9524
|
-
|
|
9525
|
-
|
|
9526
|
-
"
|
|
9527
|
-
"
|
|
9528
|
-
|
|
9529
|
-
|
|
9530
|
-
},
|
|
9531
|
-
"immutable": true,
|
|
9532
|
-
"locationInModule": {
|
|
9533
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9534
|
-
"line": 208
|
|
9535
|
-
},
|
|
9536
|
-
"name": "amiDescription",
|
|
9537
|
-
"optional": true,
|
|
9538
|
-
"type": {
|
|
9539
|
-
"primitive": "string"
|
|
9540
|
-
}
|
|
9541
|
-
},
|
|
9542
|
-
{
|
|
9543
|
-
"abstract": true,
|
|
9544
|
-
"docs": {
|
|
9545
|
-
"default": "None",
|
|
9546
|
-
"stability": "experimental",
|
|
9547
|
-
"summary": "The KMS key to encrypt the distributed AMI with."
|
|
9548
|
-
},
|
|
9549
|
-
"immutable": true,
|
|
9550
|
-
"locationInModule": {
|
|
9551
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9552
|
-
"line": 215
|
|
9553
|
-
},
|
|
9554
|
-
"name": "amiKmsKey",
|
|
9555
|
-
"optional": true,
|
|
9556
|
-
"type": {
|
|
9557
|
-
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
9558
|
-
}
|
|
9559
|
-
},
|
|
9560
|
-
{
|
|
9561
|
-
"abstract": true,
|
|
9562
|
-
"docs": {
|
|
9563
|
-
"default": "None",
|
|
9564
|
-
"stability": "experimental",
|
|
9565
|
-
"summary": "The launch permissions for the AMI, defining which principals are allowed to access the AMI."
|
|
9566
|
-
},
|
|
9567
|
-
"immutable": true,
|
|
9568
|
-
"locationInModule": {
|
|
9569
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9570
|
-
"line": 222
|
|
9571
|
-
},
|
|
9572
|
-
"name": "amiLaunchPermission",
|
|
9573
|
-
"optional": true,
|
|
9574
|
-
"type": {
|
|
9575
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission"
|
|
9576
|
-
}
|
|
9577
|
-
},
|
|
9578
|
-
{
|
|
9579
|
-
"abstract": true,
|
|
9580
|
-
"docs": {
|
|
9581
|
-
"default": "A name is generated from the image recipe name",
|
|
9582
|
-
"stability": "experimental",
|
|
9583
|
-
"summary": "The name to use for the distributed AMIs."
|
|
9584
|
-
},
|
|
9585
|
-
"immutable": true,
|
|
9586
|
-
"locationInModule": {
|
|
9587
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9588
|
-
"line": 229
|
|
9637
|
+
"name": "windowsServer2019Core",
|
|
9638
|
+
"parameters": [
|
|
9639
|
+
{
|
|
9640
|
+
"docs": {
|
|
9641
|
+
"summary": "The construct scope."
|
|
9642
|
+
},
|
|
9643
|
+
"name": "scope",
|
|
9644
|
+
"type": {
|
|
9645
|
+
"fqn": "constructs.Construct"
|
|
9646
|
+
}
|
|
9647
|
+
},
|
|
9648
|
+
{
|
|
9649
|
+
"docs": {
|
|
9650
|
+
"summary": "Identifier of the construct."
|
|
9651
|
+
},
|
|
9652
|
+
"name": "id",
|
|
9653
|
+
"type": {
|
|
9654
|
+
"primitive": "string"
|
|
9655
|
+
}
|
|
9656
|
+
},
|
|
9657
|
+
{
|
|
9658
|
+
"docs": {
|
|
9659
|
+
"summary": "The Amazon-managed image attributes."
|
|
9660
|
+
},
|
|
9661
|
+
"name": "opts",
|
|
9662
|
+
"type": {
|
|
9663
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9664
|
+
}
|
|
9665
|
+
}
|
|
9666
|
+
],
|
|
9667
|
+
"returns": {
|
|
9668
|
+
"type": {
|
|
9669
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9670
|
+
}
|
|
9589
9671
|
},
|
|
9590
|
-
"
|
|
9591
|
-
"optional": true,
|
|
9592
|
-
"type": {
|
|
9593
|
-
"primitive": "string"
|
|
9594
|
-
}
|
|
9672
|
+
"static": true
|
|
9595
9673
|
},
|
|
9596
9674
|
{
|
|
9597
|
-
"abstract": true,
|
|
9598
9675
|
"docs": {
|
|
9599
|
-
"
|
|
9676
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9600
9677
|
"stability": "experimental",
|
|
9601
|
-
"summary": "
|
|
9678
|
+
"summary": "Imports the Windows Server 2019 Full Amazon-managed image."
|
|
9602
9679
|
},
|
|
9603
|
-
"immutable": true,
|
|
9604
9680
|
"locationInModule": {
|
|
9605
|
-
"filename": "lib/
|
|
9606
|
-
"line":
|
|
9681
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9682
|
+
"line": 187
|
|
9607
9683
|
},
|
|
9608
|
-
"name": "
|
|
9609
|
-
"
|
|
9610
|
-
|
|
9611
|
-
|
|
9612
|
-
|
|
9684
|
+
"name": "windowsServer2019Full",
|
|
9685
|
+
"parameters": [
|
|
9686
|
+
{
|
|
9687
|
+
"docs": {
|
|
9688
|
+
"summary": "The construct scope."
|
|
9689
|
+
},
|
|
9690
|
+
"name": "scope",
|
|
9691
|
+
"type": {
|
|
9692
|
+
"fqn": "constructs.Construct"
|
|
9693
|
+
}
|
|
9694
|
+
},
|
|
9695
|
+
{
|
|
9696
|
+
"docs": {
|
|
9697
|
+
"summary": "Identifier of the construct."
|
|
9698
|
+
},
|
|
9699
|
+
"name": "id",
|
|
9700
|
+
"type": {
|
|
9613
9701
|
"primitive": "string"
|
|
9702
|
+
}
|
|
9703
|
+
},
|
|
9704
|
+
{
|
|
9705
|
+
"docs": {
|
|
9706
|
+
"summary": "The Amazon-managed image attributes."
|
|
9614
9707
|
},
|
|
9615
|
-
"
|
|
9708
|
+
"name": "opts",
|
|
9709
|
+
"type": {
|
|
9710
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9711
|
+
}
|
|
9616
9712
|
}
|
|
9617
|
-
|
|
9713
|
+
],
|
|
9714
|
+
"returns": {
|
|
9715
|
+
"type": {
|
|
9716
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9717
|
+
}
|
|
9718
|
+
},
|
|
9719
|
+
"static": true
|
|
9618
9720
|
},
|
|
9619
9721
|
{
|
|
9620
|
-
"abstract": true,
|
|
9621
9722
|
"docs": {
|
|
9622
|
-
"
|
|
9723
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9623
9724
|
"stability": "experimental",
|
|
9624
|
-
"summary": "
|
|
9725
|
+
"summary": "Imports the Windows Server 2022 Core Amazon-managed image."
|
|
9625
9726
|
},
|
|
9626
|
-
"immutable": true,
|
|
9627
9727
|
"locationInModule": {
|
|
9628
|
-
"filename": "lib/
|
|
9629
|
-
"line":
|
|
9728
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9729
|
+
"line": 200
|
|
9630
9730
|
},
|
|
9631
|
-
"name": "
|
|
9632
|
-
"
|
|
9633
|
-
|
|
9634
|
-
|
|
9635
|
-
|
|
9731
|
+
"name": "windowsServer2022Core",
|
|
9732
|
+
"parameters": [
|
|
9733
|
+
{
|
|
9734
|
+
"docs": {
|
|
9735
|
+
"summary": "The construct scope."
|
|
9736
|
+
},
|
|
9737
|
+
"name": "scope",
|
|
9738
|
+
"type": {
|
|
9739
|
+
"fqn": "constructs.Construct"
|
|
9740
|
+
}
|
|
9741
|
+
},
|
|
9742
|
+
{
|
|
9743
|
+
"docs": {
|
|
9744
|
+
"summary": "Identifier of the construct."
|
|
9745
|
+
},
|
|
9746
|
+
"name": "id",
|
|
9747
|
+
"type": {
|
|
9636
9748
|
"primitive": "string"
|
|
9749
|
+
}
|
|
9750
|
+
},
|
|
9751
|
+
{
|
|
9752
|
+
"docs": {
|
|
9753
|
+
"summary": "The Amazon-managed image attributes."
|
|
9637
9754
|
},
|
|
9638
|
-
"
|
|
9755
|
+
"name": "opts",
|
|
9756
|
+
"type": {
|
|
9757
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9758
|
+
}
|
|
9639
9759
|
}
|
|
9640
|
-
|
|
9760
|
+
],
|
|
9761
|
+
"returns": {
|
|
9762
|
+
"type": {
|
|
9763
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9764
|
+
}
|
|
9765
|
+
},
|
|
9766
|
+
"static": true
|
|
9641
9767
|
},
|
|
9642
9768
|
{
|
|
9643
|
-
"abstract": true,
|
|
9644
9769
|
"docs": {
|
|
9645
|
-
"
|
|
9646
|
-
"see": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableFastLaunch.html",
|
|
9770
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9647
9771
|
"stability": "experimental",
|
|
9648
|
-
"summary": "
|
|
9772
|
+
"summary": "Imports the Windows Server 2022 Full Amazon-managed image."
|
|
9649
9773
|
},
|
|
9650
|
-
"immutable": true,
|
|
9651
9774
|
"locationInModule": {
|
|
9652
|
-
"filename": "lib/
|
|
9653
|
-
"line":
|
|
9775
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9776
|
+
"line": 213
|
|
9654
9777
|
},
|
|
9655
|
-
"name": "
|
|
9656
|
-
"
|
|
9657
|
-
|
|
9658
|
-
|
|
9659
|
-
|
|
9660
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.FastLaunchConfiguration"
|
|
9778
|
+
"name": "windowsServer2022Full",
|
|
9779
|
+
"parameters": [
|
|
9780
|
+
{
|
|
9781
|
+
"docs": {
|
|
9782
|
+
"summary": "The construct scope."
|
|
9661
9783
|
},
|
|
9662
|
-
"
|
|
9784
|
+
"name": "scope",
|
|
9785
|
+
"type": {
|
|
9786
|
+
"fqn": "constructs.Construct"
|
|
9787
|
+
}
|
|
9788
|
+
},
|
|
9789
|
+
{
|
|
9790
|
+
"docs": {
|
|
9791
|
+
"summary": "Identifier of the construct."
|
|
9792
|
+
},
|
|
9793
|
+
"name": "id",
|
|
9794
|
+
"type": {
|
|
9795
|
+
"primitive": "string"
|
|
9796
|
+
}
|
|
9797
|
+
},
|
|
9798
|
+
{
|
|
9799
|
+
"docs": {
|
|
9800
|
+
"summary": "The Amazon-managed image attributes."
|
|
9801
|
+
},
|
|
9802
|
+
"name": "opts",
|
|
9803
|
+
"type": {
|
|
9804
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9805
|
+
}
|
|
9663
9806
|
}
|
|
9664
|
-
|
|
9807
|
+
],
|
|
9808
|
+
"returns": {
|
|
9809
|
+
"type": {
|
|
9810
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9811
|
+
}
|
|
9812
|
+
},
|
|
9813
|
+
"static": true
|
|
9665
9814
|
},
|
|
9666
9815
|
{
|
|
9667
|
-
"abstract": true,
|
|
9668
9816
|
"docs": {
|
|
9669
|
-
"
|
|
9817
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9670
9818
|
"stability": "experimental",
|
|
9671
|
-
"summary": "
|
|
9819
|
+
"summary": "Imports the Windows Server 2025 Core Amazon-managed image."
|
|
9672
9820
|
},
|
|
9673
|
-
"immutable": true,
|
|
9674
9821
|
"locationInModule": {
|
|
9675
|
-
"filename": "lib/
|
|
9676
|
-
"line":
|
|
9822
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9823
|
+
"line": 226
|
|
9677
9824
|
},
|
|
9678
|
-
"name": "
|
|
9679
|
-
"
|
|
9680
|
-
|
|
9681
|
-
|
|
9682
|
-
|
|
9683
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.LaunchTemplateConfiguration"
|
|
9825
|
+
"name": "windowsServer2025Core",
|
|
9826
|
+
"parameters": [
|
|
9827
|
+
{
|
|
9828
|
+
"docs": {
|
|
9829
|
+
"summary": "The construct scope."
|
|
9684
9830
|
},
|
|
9685
|
-
"
|
|
9831
|
+
"name": "scope",
|
|
9832
|
+
"type": {
|
|
9833
|
+
"fqn": "constructs.Construct"
|
|
9834
|
+
}
|
|
9835
|
+
},
|
|
9836
|
+
{
|
|
9837
|
+
"docs": {
|
|
9838
|
+
"summary": "Identifier of the construct."
|
|
9839
|
+
},
|
|
9840
|
+
"name": "id",
|
|
9841
|
+
"type": {
|
|
9842
|
+
"primitive": "string"
|
|
9843
|
+
}
|
|
9844
|
+
},
|
|
9845
|
+
{
|
|
9846
|
+
"docs": {
|
|
9847
|
+
"summary": "The Amazon-managed image attributes."
|
|
9848
|
+
},
|
|
9849
|
+
"name": "opts",
|
|
9850
|
+
"type": {
|
|
9851
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9852
|
+
}
|
|
9686
9853
|
}
|
|
9687
|
-
|
|
9854
|
+
],
|
|
9855
|
+
"returns": {
|
|
9856
|
+
"type": {
|
|
9857
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9858
|
+
}
|
|
9859
|
+
},
|
|
9860
|
+
"static": true
|
|
9688
9861
|
},
|
|
9689
9862
|
{
|
|
9690
|
-
"abstract": true,
|
|
9691
9863
|
"docs": {
|
|
9692
|
-
"
|
|
9864
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9693
9865
|
"stability": "experimental",
|
|
9694
|
-
"summary": "
|
|
9866
|
+
"summary": "Imports the Windows Server 2025 Full Amazon-managed image."
|
|
9695
9867
|
},
|
|
9696
|
-
"immutable": true,
|
|
9697
9868
|
"locationInModule": {
|
|
9698
|
-
"filename": "lib/
|
|
9699
|
-
"line":
|
|
9869
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9870
|
+
"line": 239
|
|
9700
9871
|
},
|
|
9701
|
-
"name": "
|
|
9702
|
-
"
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9872
|
+
"name": "windowsServer2025Full",
|
|
9873
|
+
"parameters": [
|
|
9874
|
+
{
|
|
9875
|
+
"docs": {
|
|
9876
|
+
"summary": "The construct scope."
|
|
9877
|
+
},
|
|
9878
|
+
"name": "scope",
|
|
9879
|
+
"type": {
|
|
9880
|
+
"fqn": "constructs.Construct"
|
|
9881
|
+
}
|
|
9882
|
+
},
|
|
9883
|
+
{
|
|
9884
|
+
"docs": {
|
|
9885
|
+
"summary": "Identifier of the construct."
|
|
9886
|
+
},
|
|
9887
|
+
"name": "id",
|
|
9888
|
+
"type": {
|
|
9706
9889
|
"primitive": "string"
|
|
9890
|
+
}
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
"docs": {
|
|
9894
|
+
"summary": "The Amazon-managed image attributes."
|
|
9707
9895
|
},
|
|
9708
|
-
"
|
|
9896
|
+
"name": "opts",
|
|
9897
|
+
"type": {
|
|
9898
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9899
|
+
}
|
|
9709
9900
|
}
|
|
9710
|
-
|
|
9711
|
-
|
|
9901
|
+
],
|
|
9902
|
+
"returns": {
|
|
9903
|
+
"type": {
|
|
9904
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9905
|
+
}
|
|
9906
|
+
},
|
|
9907
|
+
"static": true
|
|
9908
|
+
}
|
|
9909
|
+
],
|
|
9910
|
+
"name": "AmazonManagedImage",
|
|
9911
|
+
"symbolId": "lib/amazon-managed-image:AmazonManagedImage"
|
|
9912
|
+
},
|
|
9913
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes": {
|
|
9914
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9915
|
+
"datatype": true,
|
|
9916
|
+
"docs": {
|
|
9917
|
+
"stability": "experimental",
|
|
9918
|
+
"summary": "Attributes for importing an Amazon-managed image by name (and optionally a version).",
|
|
9919
|
+
"example": "// Import by name\nconst managedImageByName = imagebuilder.AmazonManagedImage.fromAmazonManagedImageName(\n this,\n 'ManagedImageByName',\n 'amazon-linux-2023-x86'\n);\n\n// Import by attributes with specific version\nconst managedImageByAttributes = imagebuilder.AmazonManagedImage.fromAmazonManagedImageAttributes(this, 'ManagedImageByAttributes', {\n imageName: 'ubuntu-server-22-lts-x86',\n imageVersion: '2024.11.25'\n});",
|
|
9920
|
+
"custom": {
|
|
9921
|
+
"exampleMetadata": "infused"
|
|
9922
|
+
}
|
|
9923
|
+
},
|
|
9924
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes",
|
|
9925
|
+
"kind": "interface",
|
|
9926
|
+
"locationInModule": {
|
|
9927
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9928
|
+
"line": 9
|
|
9929
|
+
},
|
|
9930
|
+
"name": "AmazonManagedImageAttributes",
|
|
9931
|
+
"properties": [
|
|
9712
9932
|
{
|
|
9713
9933
|
"abstract": true,
|
|
9714
9934
|
"docs": {
|
|
9715
|
-
"
|
|
9935
|
+
"remarks": "The provided name must be normalized by converting all alphabetical\ncharacters to lowercase, and replacing all spaces and underscores with hyphens.",
|
|
9716
9936
|
"stability": "experimental",
|
|
9717
|
-
"summary": "The
|
|
9937
|
+
"summary": "The name of the Amazon-managed image."
|
|
9718
9938
|
},
|
|
9719
9939
|
"immutable": true,
|
|
9720
9940
|
"locationInModule": {
|
|
9721
|
-
"filename": "lib/
|
|
9722
|
-
"line":
|
|
9941
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9942
|
+
"line": 14
|
|
9723
9943
|
},
|
|
9724
|
-
"name": "
|
|
9725
|
-
"optional": true,
|
|
9944
|
+
"name": "imageName",
|
|
9726
9945
|
"type": {
|
|
9727
9946
|
"primitive": "string"
|
|
9728
9947
|
}
|
|
@@ -9730,151 +9949,107 @@
|
|
|
9730
9949
|
{
|
|
9731
9950
|
"abstract": true,
|
|
9732
9951
|
"docs": {
|
|
9733
|
-
"default": "
|
|
9952
|
+
"default": "x.x.x",
|
|
9734
9953
|
"stability": "experimental",
|
|
9735
|
-
"summary": "The
|
|
9954
|
+
"summary": "The version of the Amazon-managed image."
|
|
9736
9955
|
},
|
|
9737
9956
|
"immutable": true,
|
|
9738
9957
|
"locationInModule": {
|
|
9739
|
-
"filename": "lib/
|
|
9740
|
-
"line":
|
|
9958
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9959
|
+
"line": 21
|
|
9741
9960
|
},
|
|
9742
|
-
"name": "
|
|
9961
|
+
"name": "imageVersion",
|
|
9743
9962
|
"optional": true,
|
|
9744
9963
|
"type": {
|
|
9745
|
-
"
|
|
9746
|
-
"elementtype": {
|
|
9747
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.SSMParameterConfigurations"
|
|
9748
|
-
},
|
|
9749
|
-
"kind": "array"
|
|
9750
|
-
}
|
|
9964
|
+
"primitive": "string"
|
|
9751
9965
|
}
|
|
9752
9966
|
}
|
|
9753
9967
|
],
|
|
9754
|
-
"symbolId": "lib/
|
|
9968
|
+
"symbolId": "lib/amazon-managed-image:AmazonManagedImageAttributes"
|
|
9755
9969
|
},
|
|
9756
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
9970
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions": {
|
|
9757
9971
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9758
9972
|
"datatype": true,
|
|
9759
9973
|
"docs": {
|
|
9760
9974
|
"stability": "experimental",
|
|
9761
|
-
"summary": "
|
|
9762
|
-
"example": "
|
|
9975
|
+
"summary": "Options for selecting a predefined Amazon-managed image.",
|
|
9976
|
+
"example": "// Amazon Linux 2023 AMI for x86_64\nconst amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Ubuntu 22.04 AMI for ARM64\nconst ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.ARM64\n});\n\n// Windows Server 2022 Full AMI\nconst windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {\n imageType: imagebuilder.ImageType.AMI,\n imageArchitecture: imagebuilder.ImageArchitecture.X86_64\n});\n\n// Use as base image in recipe\nconst managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {\n baseImage: amazonLinux2023Ami.toBaseImage()\n});",
|
|
9763
9977
|
"custom": {
|
|
9764
9978
|
"exampleMetadata": "infused"
|
|
9765
9979
|
}
|
|
9766
9980
|
},
|
|
9767
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
9981
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions",
|
|
9768
9982
|
"kind": "interface",
|
|
9769
9983
|
"locationInModule": {
|
|
9770
|
-
"filename": "lib/
|
|
9771
|
-
"line":
|
|
9984
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9985
|
+
"line": 27
|
|
9772
9986
|
},
|
|
9773
|
-
"name": "
|
|
9987
|
+
"name": "AmazonManagedImageOptions",
|
|
9774
9988
|
"properties": [
|
|
9775
9989
|
{
|
|
9776
9990
|
"abstract": true,
|
|
9777
9991
|
"docs": {
|
|
9778
|
-
"default": "None",
|
|
9779
|
-
"stability": "experimental",
|
|
9780
|
-
"summary": "The AWS account IDs to share the AMI with."
|
|
9781
|
-
},
|
|
9782
|
-
"immutable": true,
|
|
9783
|
-
"locationInModule": {
|
|
9784
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9785
|
-
"line": 90
|
|
9786
|
-
},
|
|
9787
|
-
"name": "accountIds",
|
|
9788
|
-
"optional": true,
|
|
9789
|
-
"type": {
|
|
9790
|
-
"collection": {
|
|
9791
|
-
"elementtype": {
|
|
9792
|
-
"primitive": "string"
|
|
9793
|
-
},
|
|
9794
|
-
"kind": "array"
|
|
9795
|
-
}
|
|
9796
|
-
}
|
|
9797
|
-
},
|
|
9798
|
-
{
|
|
9799
|
-
"abstract": true,
|
|
9800
|
-
"docs": {
|
|
9801
|
-
"default": "false",
|
|
9802
|
-
"remarks": "WARNING: Making an AMI public exposes it to any AWS account globally.\n Ensure the AMI does not contain:\n - Sensitive data or credentials\n - Proprietary software or configurations\n - Internal network information or security settings\n\nFor more information on blocking public access for AMIs, see: [Understand block public access for AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html)",
|
|
9803
9992
|
"stability": "experimental",
|
|
9804
|
-
"summary": "
|
|
9993
|
+
"summary": "The architecture of the Amazon-managed image."
|
|
9805
9994
|
},
|
|
9806
9995
|
"immutable": true,
|
|
9807
9996
|
"locationInModule": {
|
|
9808
|
-
"filename": "lib/
|
|
9809
|
-
"line":
|
|
9997
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9998
|
+
"line": 31
|
|
9810
9999
|
},
|
|
9811
|
-
"name": "
|
|
9812
|
-
"optional": true,
|
|
10000
|
+
"name": "imageArchitecture",
|
|
9813
10001
|
"type": {
|
|
9814
|
-
"
|
|
10002
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ImageArchitecture"
|
|
9815
10003
|
}
|
|
9816
10004
|
},
|
|
9817
10005
|
{
|
|
9818
10006
|
"abstract": true,
|
|
9819
10007
|
"docs": {
|
|
9820
|
-
"default": "None",
|
|
9821
10008
|
"stability": "experimental",
|
|
9822
|
-
"summary": "The
|
|
10009
|
+
"summary": "The type of the Amazon-managed image."
|
|
9823
10010
|
},
|
|
9824
10011
|
"immutable": true,
|
|
9825
10012
|
"locationInModule": {
|
|
9826
|
-
"filename": "lib/
|
|
9827
|
-
"line":
|
|
10013
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
10014
|
+
"line": 36
|
|
9828
10015
|
},
|
|
9829
|
-
"name": "
|
|
9830
|
-
"
|
|
9831
|
-
|
|
9832
|
-
"collection": {
|
|
9833
|
-
"elementtype": {
|
|
9834
|
-
"primitive": "string"
|
|
9835
|
-
},
|
|
9836
|
-
"kind": "array"
|
|
9837
|
-
}
|
|
10016
|
+
"name": "imageType",
|
|
10017
|
+
"type": {
|
|
10018
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ImageType"
|
|
9838
10019
|
}
|
|
9839
10020
|
},
|
|
9840
10021
|
{
|
|
9841
10022
|
"abstract": true,
|
|
9842
10023
|
"docs": {
|
|
9843
|
-
"default": "
|
|
10024
|
+
"default": "x.x.x",
|
|
9844
10025
|
"stability": "experimental",
|
|
9845
|
-
"summary": "The
|
|
10026
|
+
"summary": "The version of the Amazon-managed image."
|
|
9846
10027
|
},
|
|
9847
10028
|
"immutable": true,
|
|
9848
10029
|
"locationInModule": {
|
|
9849
|
-
"filename": "lib/
|
|
9850
|
-
"line":
|
|
10030
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
10031
|
+
"line": 43
|
|
9851
10032
|
},
|
|
9852
|
-
"name": "
|
|
10033
|
+
"name": "imageVersion",
|
|
9853
10034
|
"optional": true,
|
|
9854
10035
|
"type": {
|
|
9855
|
-
"
|
|
9856
|
-
"elementtype": {
|
|
9857
|
-
"primitive": "string"
|
|
9858
|
-
},
|
|
9859
|
-
"kind": "array"
|
|
9860
|
-
}
|
|
10036
|
+
"primitive": "string"
|
|
9861
10037
|
}
|
|
9862
10038
|
}
|
|
9863
10039
|
],
|
|
9864
|
-
"symbolId": "lib/
|
|
10040
|
+
"symbolId": "lib/amazon-managed-image:AmazonManagedImageOptions"
|
|
9865
10041
|
},
|
|
9866
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
9867
|
-
"abstract": true,
|
|
10042
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow": {
|
|
9868
10043
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9869
10044
|
"docs": {
|
|
9870
10045
|
"stability": "experimental",
|
|
9871
|
-
"summary": "Helper class for working with
|
|
9872
|
-
"example": "const
|
|
10046
|
+
"summary": "Helper class for working with Amazon-managed workflows.",
|
|
10047
|
+
"example": "const containerWorkflowPipeline = new imagebuilder.ImagePipeline(this, 'ContainerWorkflowPipeline', {\n recipe: exampleContainerRecipe,\n workflows: [\n { workflow: imagebuilder.AmazonManagedWorkflow.buildContainer(this, 'BuildContainer') },\n { workflow: imagebuilder.AmazonManagedWorkflow.testContainer(this, 'TestContainer') },\n { workflow: imagebuilder.AmazonManagedWorkflow.distributeContainer(this, 'DistributeContainer') }\n ]\n});",
|
|
9873
10048
|
"custom": {
|
|
9874
10049
|
"exampleMetadata": "infused"
|
|
9875
10050
|
}
|
|
9876
10051
|
},
|
|
9877
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10052
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow",
|
|
9878
10053
|
"initializer": {
|
|
9879
10054
|
"docs": {
|
|
9880
10055
|
"stability": "experimental"
|
|
@@ -9882,20 +10057,20 @@
|
|
|
9882
10057
|
},
|
|
9883
10058
|
"kind": "class",
|
|
9884
10059
|
"locationInModule": {
|
|
9885
|
-
"filename": "lib/
|
|
9886
|
-
"line":
|
|
10060
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10061
|
+
"line": 24
|
|
9887
10062
|
},
|
|
9888
10063
|
"methods": [
|
|
9889
10064
|
{
|
|
9890
10065
|
"docs": {
|
|
9891
10066
|
"stability": "experimental",
|
|
9892
|
-
"summary": "Imports the
|
|
10067
|
+
"summary": "Imports the build-container Amazon-managed workflow."
|
|
9893
10068
|
},
|
|
9894
10069
|
"locationInModule": {
|
|
9895
|
-
"filename": "lib/
|
|
9896
|
-
"line":
|
|
10070
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10071
|
+
"line": 31
|
|
9897
10072
|
},
|
|
9898
|
-
"name": "
|
|
10073
|
+
"name": "buildContainer",
|
|
9899
10074
|
"parameters": [
|
|
9900
10075
|
{
|
|
9901
10076
|
"docs": {
|
|
@@ -9914,20 +10089,11 @@
|
|
|
9914
10089
|
"type": {
|
|
9915
10090
|
"primitive": "string"
|
|
9916
10091
|
}
|
|
9917
|
-
},
|
|
9918
|
-
{
|
|
9919
|
-
"docs": {
|
|
9920
|
-
"summary": "The AWS-managed component attributes."
|
|
9921
|
-
},
|
|
9922
|
-
"name": "attrs",
|
|
9923
|
-
"type": {
|
|
9924
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedComponentAttributes"
|
|
9925
|
-
}
|
|
9926
10092
|
}
|
|
9927
10093
|
],
|
|
9928
10094
|
"returns": {
|
|
9929
10095
|
"type": {
|
|
9930
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10096
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
9931
10097
|
}
|
|
9932
10098
|
},
|
|
9933
10099
|
"static": true
|
|
@@ -9935,13 +10101,13 @@
|
|
|
9935
10101
|
{
|
|
9936
10102
|
"docs": {
|
|
9937
10103
|
"stability": "experimental",
|
|
9938
|
-
"summary": "Imports
|
|
10104
|
+
"summary": "Imports the build-image AWS-managed workflow."
|
|
9939
10105
|
},
|
|
9940
10106
|
"locationInModule": {
|
|
9941
|
-
"filename": "lib/
|
|
9942
|
-
"line":
|
|
10107
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10108
|
+
"line": 44
|
|
9943
10109
|
},
|
|
9944
|
-
"name": "
|
|
10110
|
+
"name": "buildImage",
|
|
9945
10111
|
"parameters": [
|
|
9946
10112
|
{
|
|
9947
10113
|
"docs": {
|
|
@@ -9960,20 +10126,11 @@
|
|
|
9960
10126
|
"type": {
|
|
9961
10127
|
"primitive": "string"
|
|
9962
10128
|
}
|
|
9963
|
-
},
|
|
9964
|
-
{
|
|
9965
|
-
"docs": {
|
|
9966
|
-
"summary": "The AWS-managed component attributes."
|
|
9967
|
-
},
|
|
9968
|
-
"name": "attrs",
|
|
9969
|
-
"type": {
|
|
9970
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedComponentAttributes"
|
|
9971
|
-
}
|
|
9972
10129
|
}
|
|
9973
10130
|
],
|
|
9974
10131
|
"returns": {
|
|
9975
10132
|
"type": {
|
|
9976
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10133
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
9977
10134
|
}
|
|
9978
10135
|
},
|
|
9979
10136
|
"static": true
|
|
@@ -9981,13 +10138,13 @@
|
|
|
9981
10138
|
{
|
|
9982
10139
|
"docs": {
|
|
9983
10140
|
"stability": "experimental",
|
|
9984
|
-
"summary": "Imports
|
|
10141
|
+
"summary": "Imports the distribute-container AWS-managed workflow."
|
|
9985
10142
|
},
|
|
9986
10143
|
"locationInModule": {
|
|
9987
|
-
"filename": "lib/
|
|
9988
|
-
"line":
|
|
10144
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10145
|
+
"line": 57
|
|
9989
10146
|
},
|
|
9990
|
-
"name": "
|
|
10147
|
+
"name": "distributeContainer",
|
|
9991
10148
|
"parameters": [
|
|
9992
10149
|
{
|
|
9993
10150
|
"docs": {
|
|
@@ -10006,20 +10163,11 @@
|
|
|
10006
10163
|
"type": {
|
|
10007
10164
|
"primitive": "string"
|
|
10008
10165
|
}
|
|
10009
|
-
},
|
|
10010
|
-
{
|
|
10011
|
-
"docs": {
|
|
10012
|
-
"summary": "- The name of the AWS-managed component."
|
|
10013
|
-
},
|
|
10014
|
-
"name": "awsManagedComponentName",
|
|
10015
|
-
"type": {
|
|
10016
|
-
"primitive": "string"
|
|
10017
|
-
}
|
|
10018
10166
|
}
|
|
10019
10167
|
],
|
|
10020
10168
|
"returns": {
|
|
10021
10169
|
"type": {
|
|
10022
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10170
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10023
10171
|
}
|
|
10024
10172
|
},
|
|
10025
10173
|
"static": true
|
|
@@ -10027,13 +10175,13 @@
|
|
|
10027
10175
|
{
|
|
10028
10176
|
"docs": {
|
|
10029
10177
|
"stability": "experimental",
|
|
10030
|
-
"summary": "Imports the
|
|
10178
|
+
"summary": "Imports the distribute-image AWS-managed workflow."
|
|
10031
10179
|
},
|
|
10032
10180
|
"locationInModule": {
|
|
10033
|
-
"filename": "lib/
|
|
10034
|
-
"line":
|
|
10181
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10182
|
+
"line": 70
|
|
10035
10183
|
},
|
|
10036
|
-
"name": "
|
|
10184
|
+
"name": "distributeImage",
|
|
10037
10185
|
"parameters": [
|
|
10038
10186
|
{
|
|
10039
10187
|
"docs": {
|
|
@@ -10052,20 +10200,11 @@
|
|
|
10052
10200
|
"type": {
|
|
10053
10201
|
"primitive": "string"
|
|
10054
10202
|
}
|
|
10055
|
-
},
|
|
10056
|
-
{
|
|
10057
|
-
"docs": {
|
|
10058
|
-
"summary": "The AWS-managed component attributes."
|
|
10059
|
-
},
|
|
10060
|
-
"name": "attrs",
|
|
10061
|
-
"type": {
|
|
10062
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedComponentAttributes"
|
|
10063
|
-
}
|
|
10064
10203
|
}
|
|
10065
10204
|
],
|
|
10066
10205
|
"returns": {
|
|
10067
10206
|
"type": {
|
|
10068
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10207
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10069
10208
|
}
|
|
10070
10209
|
},
|
|
10071
10210
|
"static": true
|
|
@@ -10073,13 +10212,13 @@
|
|
|
10073
10212
|
{
|
|
10074
10213
|
"docs": {
|
|
10075
10214
|
"stability": "experimental",
|
|
10076
|
-
"summary": "Imports
|
|
10215
|
+
"summary": "Imports an AWS-managed workflow from its attributes."
|
|
10077
10216
|
},
|
|
10078
10217
|
"locationInModule": {
|
|
10079
|
-
"filename": "lib/
|
|
10080
|
-
"line":
|
|
10218
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10219
|
+
"line": 110
|
|
10081
10220
|
},
|
|
10082
|
-
"name": "
|
|
10221
|
+
"name": "fromAmazonManagedWorkflowAttributes",
|
|
10083
10222
|
"parameters": [
|
|
10084
10223
|
{
|
|
10085
10224
|
"docs": {
|
|
@@ -10101,17 +10240,17 @@
|
|
|
10101
10240
|
},
|
|
10102
10241
|
{
|
|
10103
10242
|
"docs": {
|
|
10104
|
-
"summary": "The AWS-managed
|
|
10243
|
+
"summary": "The attributes of the AWS-managed workflow."
|
|
10105
10244
|
},
|
|
10106
10245
|
"name": "attrs",
|
|
10107
10246
|
"type": {
|
|
10108
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10247
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflowAttributes"
|
|
10109
10248
|
}
|
|
10110
10249
|
}
|
|
10111
10250
|
],
|
|
10112
10251
|
"returns": {
|
|
10113
10252
|
"type": {
|
|
10114
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10253
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10115
10254
|
}
|
|
10116
10255
|
},
|
|
10117
10256
|
"static": true
|
|
@@ -10119,13 +10258,13 @@
|
|
|
10119
10258
|
{
|
|
10120
10259
|
"docs": {
|
|
10121
10260
|
"stability": "experimental",
|
|
10122
|
-
"summary": "Imports the
|
|
10261
|
+
"summary": "Imports the test-container AWS-managed workflow."
|
|
10123
10262
|
},
|
|
10124
10263
|
"locationInModule": {
|
|
10125
|
-
"filename": "lib/
|
|
10126
|
-
"line":
|
|
10264
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10265
|
+
"line": 83
|
|
10127
10266
|
},
|
|
10128
|
-
"name": "
|
|
10267
|
+
"name": "testContainer",
|
|
10129
10268
|
"parameters": [
|
|
10130
10269
|
{
|
|
10131
10270
|
"docs": {
|
|
@@ -10144,35 +10283,25 @@
|
|
|
10144
10283
|
"type": {
|
|
10145
10284
|
"primitive": "string"
|
|
10146
10285
|
}
|
|
10147
|
-
},
|
|
10148
|
-
{
|
|
10149
|
-
"docs": {
|
|
10150
|
-
"summary": "The AWS-managed component attributes."
|
|
10151
|
-
},
|
|
10152
|
-
"name": "attrs",
|
|
10153
|
-
"type": {
|
|
10154
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedComponentAttributes"
|
|
10155
|
-
}
|
|
10156
10286
|
}
|
|
10157
10287
|
],
|
|
10158
10288
|
"returns": {
|
|
10159
10289
|
"type": {
|
|
10160
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10290
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10161
10291
|
}
|
|
10162
10292
|
},
|
|
10163
10293
|
"static": true
|
|
10164
10294
|
},
|
|
10165
10295
|
{
|
|
10166
10296
|
"docs": {
|
|
10167
|
-
"see": "https://docs.aws.amazon.com/imagebuilder/latest/userguide/ib-stig.html",
|
|
10168
10297
|
"stability": "experimental",
|
|
10169
|
-
"summary": "Imports the
|
|
10298
|
+
"summary": "Imports the test-image AWS-managed workflow."
|
|
10170
10299
|
},
|
|
10171
10300
|
"locationInModule": {
|
|
10172
|
-
"filename": "lib/
|
|
10173
|
-
"line":
|
|
10301
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10302
|
+
"line": 96
|
|
10174
10303
|
},
|
|
10175
|
-
"name": "
|
|
10304
|
+
"name": "testImage",
|
|
10176
10305
|
"parameters": [
|
|
10177
10306
|
{
|
|
10178
10307
|
"docs": {
|
|
@@ -10191,107 +10320,105 @@
|
|
|
10191
10320
|
"type": {
|
|
10192
10321
|
"primitive": "string"
|
|
10193
10322
|
}
|
|
10194
|
-
},
|
|
10195
|
-
{
|
|
10196
|
-
"docs": {
|
|
10197
|
-
"summary": "The AWS-managed component attributes."
|
|
10198
|
-
},
|
|
10199
|
-
"name": "attrs",
|
|
10200
|
-
"type": {
|
|
10201
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedComponentAttributes"
|
|
10202
|
-
}
|
|
10203
10323
|
}
|
|
10204
10324
|
],
|
|
10205
10325
|
"returns": {
|
|
10206
10326
|
"type": {
|
|
10207
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10327
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10208
10328
|
}
|
|
10209
10329
|
},
|
|
10210
10330
|
"static": true
|
|
10211
|
-
}
|
|
10331
|
+
}
|
|
10332
|
+
],
|
|
10333
|
+
"name": "AmazonManagedWorkflow",
|
|
10334
|
+
"symbolId": "lib/amazon-managed-workflow:AmazonManagedWorkflow"
|
|
10335
|
+
},
|
|
10336
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflowAttributes": {
|
|
10337
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
10338
|
+
"datatype": true,
|
|
10339
|
+
"docs": {
|
|
10340
|
+
"stability": "experimental",
|
|
10341
|
+
"summary": "Properties for an EC2 Image Builder Amazon-managed workflow.",
|
|
10342
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as imagebuilder_alpha from '@aws-cdk/aws-imagebuilder-alpha';\nconst amazonManagedWorkflowAttributes: imagebuilder_alpha.AmazonManagedWorkflowAttributes = {\n workflowName: 'workflowName',\n workflowType: imagebuilder_alpha.WorkflowType.BUILD,\n};",
|
|
10343
|
+
"custom": {
|
|
10344
|
+
"exampleMetadata": "fixture=_generated"
|
|
10345
|
+
}
|
|
10346
|
+
},
|
|
10347
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflowAttributes",
|
|
10348
|
+
"kind": "interface",
|
|
10349
|
+
"locationInModule": {
|
|
10350
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10351
|
+
"line": 9
|
|
10352
|
+
},
|
|
10353
|
+
"name": "AmazonManagedWorkflowAttributes",
|
|
10354
|
+
"properties": [
|
|
10212
10355
|
{
|
|
10356
|
+
"abstract": true,
|
|
10213
10357
|
"docs": {
|
|
10214
10358
|
"stability": "experimental",
|
|
10215
|
-
"summary": "
|
|
10359
|
+
"summary": "The name of the Amazon-managed workflow."
|
|
10216
10360
|
},
|
|
10361
|
+
"immutable": true,
|
|
10217
10362
|
"locationInModule": {
|
|
10218
|
-
"filename": "lib/
|
|
10219
|
-
"line":
|
|
10363
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10364
|
+
"line": 13
|
|
10220
10365
|
},
|
|
10221
|
-
"name": "
|
|
10222
|
-
"
|
|
10223
|
-
|
|
10224
|
-
|
|
10225
|
-
|
|
10226
|
-
|
|
10227
|
-
|
|
10228
|
-
|
|
10229
|
-
|
|
10230
|
-
|
|
10231
|
-
},
|
|
10232
|
-
{
|
|
10233
|
-
"docs": {
|
|
10234
|
-
"summary": "Identifier of the construct."
|
|
10235
|
-
},
|
|
10236
|
-
"name": "id",
|
|
10237
|
-
"type": {
|
|
10238
|
-
"primitive": "string"
|
|
10239
|
-
}
|
|
10240
|
-
},
|
|
10241
|
-
{
|
|
10242
|
-
"docs": {
|
|
10243
|
-
"summary": "The AWS-managed component attributes."
|
|
10244
|
-
},
|
|
10245
|
-
"name": "attrs",
|
|
10246
|
-
"type": {
|
|
10247
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedComponentAttributes"
|
|
10248
|
-
}
|
|
10249
|
-
}
|
|
10250
|
-
],
|
|
10251
|
-
"returns": {
|
|
10252
|
-
"type": {
|
|
10253
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
10254
|
-
}
|
|
10366
|
+
"name": "workflowName",
|
|
10367
|
+
"type": {
|
|
10368
|
+
"primitive": "string"
|
|
10369
|
+
}
|
|
10370
|
+
},
|
|
10371
|
+
{
|
|
10372
|
+
"abstract": true,
|
|
10373
|
+
"docs": {
|
|
10374
|
+
"stability": "experimental",
|
|
10375
|
+
"summary": "The type of the Amazon-managed workflow."
|
|
10255
10376
|
},
|
|
10256
|
-
"
|
|
10377
|
+
"immutable": true,
|
|
10378
|
+
"locationInModule": {
|
|
10379
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10380
|
+
"line": 18
|
|
10381
|
+
},
|
|
10382
|
+
"name": "workflowType",
|
|
10383
|
+
"type": {
|
|
10384
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.WorkflowType"
|
|
10385
|
+
}
|
|
10257
10386
|
}
|
|
10258
10387
|
],
|
|
10259
|
-
"
|
|
10260
|
-
"symbolId": "lib/component:AwsManagedComponent"
|
|
10388
|
+
"symbolId": "lib/amazon-managed-workflow:AmazonManagedWorkflowAttributes"
|
|
10261
10389
|
},
|
|
10262
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
10390
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmiDistribution": {
|
|
10263
10391
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
10264
10392
|
"datatype": true,
|
|
10265
10393
|
"docs": {
|
|
10266
10394
|
"stability": "experimental",
|
|
10267
|
-
"summary": "
|
|
10268
|
-
"example": "const
|
|
10395
|
+
"summary": "The regional distribution settings to use for an AMI build.",
|
|
10396
|
+
"example": "const infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {\n infrastructureConfigurationName: 'production-infrastructure',\n instanceTypes: [\n ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)\n ],\n vpc: vpc,\n subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }\n});\n\nconst distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');\ndistributionConfiguration.addAmiDistributions({\n amiName: 'production-ami-{{ imagebuilder:buildDate }}',\n amiTargetAccountIds: ['123456789012', '098765432109']\n});\n\nconst productionPipeline = new imagebuilder.ImagePipeline(this, 'ProductionPipeline', {\n recipe: exampleImageRecipe,\n infrastructureConfiguration: infrastructureConfiguration,\n distributionConfiguration: distributionConfiguration\n});",
|
|
10269
10397
|
"custom": {
|
|
10270
10398
|
"exampleMetadata": "infused"
|
|
10271
10399
|
}
|
|
10272
10400
|
},
|
|
10273
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10401
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiDistribution",
|
|
10274
10402
|
"kind": "interface",
|
|
10275
10403
|
"locationInModule": {
|
|
10276
|
-
"filename": "lib/
|
|
10277
|
-
"line":
|
|
10404
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10405
|
+
"line": 188
|
|
10278
10406
|
},
|
|
10279
|
-
"name": "
|
|
10407
|
+
"name": "AmiDistribution",
|
|
10280
10408
|
"properties": [
|
|
10281
10409
|
{
|
|
10282
10410
|
"abstract": true,
|
|
10283
10411
|
"docs": {
|
|
10284
|
-
"default": "
|
|
10285
|
-
"remarks": "The name of the AWS-managed component. This is a required attribute when using the\n`this.fromAwsManagedComponentAttributes()` method. This parameter should not be provided when\nusing the pre-defined managed component methods, such as `AwsManagedComponent.updateOS()` and\n`AwsManagedComponent.reboot()`.",
|
|
10412
|
+
"default": "None",
|
|
10286
10413
|
"stability": "experimental",
|
|
10287
|
-
"summary": "The
|
|
10414
|
+
"summary": "The description of the AMI."
|
|
10288
10415
|
},
|
|
10289
10416
|
"immutable": true,
|
|
10290
10417
|
"locationInModule": {
|
|
10291
|
-
"filename": "lib/
|
|
10292
|
-
"line":
|
|
10418
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10419
|
+
"line": 208
|
|
10293
10420
|
},
|
|
10294
|
-
"name": "
|
|
10421
|
+
"name": "amiDescription",
|
|
10295
10422
|
"optional": true,
|
|
10296
10423
|
"type": {
|
|
10297
10424
|
"primitive": "string"
|
|
@@ -10300,353 +10427,326 @@
|
|
|
10300
10427
|
{
|
|
10301
10428
|
"abstract": true,
|
|
10302
10429
|
"docs": {
|
|
10303
|
-
"default": "
|
|
10430
|
+
"default": "None",
|
|
10304
10431
|
"stability": "experimental",
|
|
10305
|
-
"summary": "The
|
|
10432
|
+
"summary": "The KMS key to encrypt the distributed AMI with."
|
|
10306
10433
|
},
|
|
10307
10434
|
"immutable": true,
|
|
10308
10435
|
"locationInModule": {
|
|
10309
|
-
"filename": "lib/
|
|
10310
|
-
"line":
|
|
10436
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10437
|
+
"line": 215
|
|
10311
10438
|
},
|
|
10312
|
-
"name": "
|
|
10439
|
+
"name": "amiKmsKey",
|
|
10313
10440
|
"optional": true,
|
|
10314
10441
|
"type": {
|
|
10315
|
-
"
|
|
10442
|
+
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
10316
10443
|
}
|
|
10317
10444
|
},
|
|
10318
10445
|
{
|
|
10319
10446
|
"abstract": true,
|
|
10320
10447
|
"docs": {
|
|
10321
|
-
"default": "
|
|
10322
|
-
"remarks": "This is a required attribute when using the pre-defined managed\ncomponent methods, such as `AwsManagedComponent.updateOS()` and `AwsManagedComponent.reboot()`. This parameter\nshould not be provided when using the `this.fromAwsManagedComponentAttributes()` method.",
|
|
10448
|
+
"default": "None",
|
|
10323
10449
|
"stability": "experimental",
|
|
10324
|
-
"summary": "The
|
|
10450
|
+
"summary": "The launch permissions for the AMI, defining which principals are allowed to access the AMI."
|
|
10325
10451
|
},
|
|
10326
10452
|
"immutable": true,
|
|
10327
10453
|
"locationInModule": {
|
|
10328
|
-
"filename": "lib/
|
|
10329
|
-
"line":
|
|
10454
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10455
|
+
"line": 222
|
|
10330
10456
|
},
|
|
10331
|
-
"name": "
|
|
10457
|
+
"name": "amiLaunchPermission",
|
|
10332
10458
|
"optional": true,
|
|
10333
10459
|
"type": {
|
|
10334
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10460
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission"
|
|
10335
10461
|
}
|
|
10336
|
-
}
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10349
|
-
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
}
|
|
10355
|
-
},
|
|
10356
|
-
"kind": "class",
|
|
10357
|
-
"locationInModule": {
|
|
10358
|
-
"filename": "lib/workflow.ts",
|
|
10359
|
-
"line": 577
|
|
10360
|
-
},
|
|
10361
|
-
"methods": [
|
|
10462
|
+
},
|
|
10463
|
+
{
|
|
10464
|
+
"abstract": true,
|
|
10465
|
+
"docs": {
|
|
10466
|
+
"default": "A name is generated from the image recipe name",
|
|
10467
|
+
"stability": "experimental",
|
|
10468
|
+
"summary": "The name to use for the distributed AMIs."
|
|
10469
|
+
},
|
|
10470
|
+
"immutable": true,
|
|
10471
|
+
"locationInModule": {
|
|
10472
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10473
|
+
"line": 229
|
|
10474
|
+
},
|
|
10475
|
+
"name": "amiName",
|
|
10476
|
+
"optional": true,
|
|
10477
|
+
"type": {
|
|
10478
|
+
"primitive": "string"
|
|
10479
|
+
}
|
|
10480
|
+
},
|
|
10362
10481
|
{
|
|
10482
|
+
"abstract": true,
|
|
10363
10483
|
"docs": {
|
|
10484
|
+
"default": "None",
|
|
10364
10485
|
"stability": "experimental",
|
|
10365
|
-
"summary": "
|
|
10486
|
+
"summary": "The tags to apply to the distributed AMIs."
|
|
10366
10487
|
},
|
|
10488
|
+
"immutable": true,
|
|
10367
10489
|
"locationInModule": {
|
|
10368
|
-
"filename": "lib/
|
|
10369
|
-
"line":
|
|
10490
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10491
|
+
"line": 201
|
|
10370
10492
|
},
|
|
10371
|
-
"name": "
|
|
10372
|
-
"
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
10376
|
-
},
|
|
10377
|
-
"name": "scope",
|
|
10378
|
-
"type": {
|
|
10379
|
-
"fqn": "constructs.Construct"
|
|
10380
|
-
}
|
|
10381
|
-
},
|
|
10382
|
-
{
|
|
10383
|
-
"docs": {
|
|
10384
|
-
"summary": "Identifier of the construct."
|
|
10385
|
-
},
|
|
10386
|
-
"name": "id",
|
|
10387
|
-
"type": {
|
|
10493
|
+
"name": "amiTags",
|
|
10494
|
+
"optional": true,
|
|
10495
|
+
"type": {
|
|
10496
|
+
"collection": {
|
|
10497
|
+
"elementtype": {
|
|
10388
10498
|
"primitive": "string"
|
|
10389
|
-
}
|
|
10390
|
-
|
|
10391
|
-
],
|
|
10392
|
-
"returns": {
|
|
10393
|
-
"type": {
|
|
10394
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10499
|
+
},
|
|
10500
|
+
"kind": "map"
|
|
10395
10501
|
}
|
|
10396
|
-
}
|
|
10397
|
-
"static": true
|
|
10502
|
+
}
|
|
10398
10503
|
},
|
|
10399
10504
|
{
|
|
10505
|
+
"abstract": true,
|
|
10400
10506
|
"docs": {
|
|
10507
|
+
"default": "None",
|
|
10401
10508
|
"stability": "experimental",
|
|
10402
|
-
"summary": "
|
|
10509
|
+
"summary": "The account IDs to copy the output AMI to."
|
|
10403
10510
|
},
|
|
10511
|
+
"immutable": true,
|
|
10404
10512
|
"locationInModule": {
|
|
10405
|
-
"filename": "lib/
|
|
10406
|
-
"line":
|
|
10513
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10514
|
+
"line": 236
|
|
10407
10515
|
},
|
|
10408
|
-
"name": "
|
|
10409
|
-
"
|
|
10410
|
-
|
|
10411
|
-
|
|
10412
|
-
|
|
10413
|
-
},
|
|
10414
|
-
"name": "scope",
|
|
10415
|
-
"type": {
|
|
10416
|
-
"fqn": "constructs.Construct"
|
|
10417
|
-
}
|
|
10418
|
-
},
|
|
10419
|
-
{
|
|
10420
|
-
"docs": {
|
|
10421
|
-
"summary": "Identifier of the construct."
|
|
10422
|
-
},
|
|
10423
|
-
"name": "id",
|
|
10424
|
-
"type": {
|
|
10516
|
+
"name": "amiTargetAccountIds",
|
|
10517
|
+
"optional": true,
|
|
10518
|
+
"type": {
|
|
10519
|
+
"collection": {
|
|
10520
|
+
"elementtype": {
|
|
10425
10521
|
"primitive": "string"
|
|
10426
|
-
}
|
|
10427
|
-
|
|
10428
|
-
],
|
|
10429
|
-
"returns": {
|
|
10430
|
-
"type": {
|
|
10431
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10522
|
+
},
|
|
10523
|
+
"kind": "array"
|
|
10432
10524
|
}
|
|
10433
|
-
}
|
|
10434
|
-
"static": true
|
|
10525
|
+
}
|
|
10435
10526
|
},
|
|
10436
10527
|
{
|
|
10528
|
+
"abstract": true,
|
|
10437
10529
|
"docs": {
|
|
10530
|
+
"default": "None",
|
|
10531
|
+
"see": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableFastLaunch.html",
|
|
10438
10532
|
"stability": "experimental",
|
|
10439
|
-
"summary": "
|
|
10533
|
+
"summary": "The fast launch configurations to use for enabling EC2 Fast Launch on the distributed Windows AMI."
|
|
10440
10534
|
},
|
|
10535
|
+
"immutable": true,
|
|
10441
10536
|
"locationInModule": {
|
|
10442
|
-
"filename": "lib/
|
|
10443
|
-
"line":
|
|
10537
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10538
|
+
"line": 258
|
|
10444
10539
|
},
|
|
10445
|
-
"name": "
|
|
10446
|
-
"
|
|
10447
|
-
|
|
10448
|
-
|
|
10449
|
-
|
|
10450
|
-
|
|
10451
|
-
"name": "scope",
|
|
10452
|
-
"type": {
|
|
10453
|
-
"fqn": "constructs.Construct"
|
|
10454
|
-
}
|
|
10455
|
-
},
|
|
10456
|
-
{
|
|
10457
|
-
"docs": {
|
|
10458
|
-
"summary": "Identifier of the construct."
|
|
10540
|
+
"name": "fastLaunchConfigurations",
|
|
10541
|
+
"optional": true,
|
|
10542
|
+
"type": {
|
|
10543
|
+
"collection": {
|
|
10544
|
+
"elementtype": {
|
|
10545
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.FastLaunchConfiguration"
|
|
10459
10546
|
},
|
|
10460
|
-
"
|
|
10461
|
-
"type": {
|
|
10462
|
-
"primitive": "string"
|
|
10463
|
-
}
|
|
10464
|
-
}
|
|
10465
|
-
],
|
|
10466
|
-
"returns": {
|
|
10467
|
-
"type": {
|
|
10468
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10547
|
+
"kind": "array"
|
|
10469
10548
|
}
|
|
10470
|
-
}
|
|
10471
|
-
"static": true
|
|
10549
|
+
}
|
|
10472
10550
|
},
|
|
10473
10551
|
{
|
|
10552
|
+
"abstract": true,
|
|
10474
10553
|
"docs": {
|
|
10554
|
+
"default": "None",
|
|
10475
10555
|
"stability": "experimental",
|
|
10476
|
-
"summary": "
|
|
10556
|
+
"summary": "The launch templates to apply the distributed AMI to."
|
|
10477
10557
|
},
|
|
10558
|
+
"immutable": true,
|
|
10478
10559
|
"locationInModule": {
|
|
10479
|
-
"filename": "lib/
|
|
10480
|
-
"line":
|
|
10560
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10561
|
+
"line": 250
|
|
10481
10562
|
},
|
|
10482
|
-
"name": "
|
|
10483
|
-
"
|
|
10484
|
-
|
|
10485
|
-
|
|
10486
|
-
|
|
10487
|
-
|
|
10488
|
-
"name": "scope",
|
|
10489
|
-
"type": {
|
|
10490
|
-
"fqn": "constructs.Construct"
|
|
10491
|
-
}
|
|
10492
|
-
},
|
|
10493
|
-
{
|
|
10494
|
-
"docs": {
|
|
10495
|
-
"summary": "Identifier of the construct."
|
|
10496
|
-
},
|
|
10497
|
-
"name": "id",
|
|
10498
|
-
"type": {
|
|
10499
|
-
"primitive": "string"
|
|
10500
|
-
}
|
|
10501
|
-
},
|
|
10502
|
-
{
|
|
10503
|
-
"docs": {
|
|
10504
|
-
"summary": "The attributes of the AWS-managed workflow."
|
|
10563
|
+
"name": "launchTemplates",
|
|
10564
|
+
"optional": true,
|
|
10565
|
+
"type": {
|
|
10566
|
+
"collection": {
|
|
10567
|
+
"elementtype": {
|
|
10568
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.LaunchTemplateConfiguration"
|
|
10505
10569
|
},
|
|
10506
|
-
"
|
|
10507
|
-
"type": {
|
|
10508
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AwsManagedWorkflowAttributes"
|
|
10509
|
-
}
|
|
10510
|
-
}
|
|
10511
|
-
],
|
|
10512
|
-
"returns": {
|
|
10513
|
-
"type": {
|
|
10514
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10570
|
+
"kind": "array"
|
|
10515
10571
|
}
|
|
10516
|
-
}
|
|
10517
|
-
"static": true
|
|
10572
|
+
}
|
|
10518
10573
|
},
|
|
10519
10574
|
{
|
|
10575
|
+
"abstract": true,
|
|
10520
10576
|
"docs": {
|
|
10577
|
+
"default": "None",
|
|
10521
10578
|
"stability": "experimental",
|
|
10522
|
-
"summary": "
|
|
10579
|
+
"summary": "The License Manager license configuration ARNs to apply to the distributed AMIs."
|
|
10523
10580
|
},
|
|
10581
|
+
"immutable": true,
|
|
10524
10582
|
"locationInModule": {
|
|
10525
|
-
"filename": "lib/
|
|
10526
|
-
"line":
|
|
10583
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10584
|
+
"line": 265
|
|
10527
10585
|
},
|
|
10528
|
-
"name": "
|
|
10529
|
-
"
|
|
10530
|
-
|
|
10531
|
-
|
|
10532
|
-
|
|
10533
|
-
},
|
|
10534
|
-
"name": "scope",
|
|
10535
|
-
"type": {
|
|
10536
|
-
"fqn": "constructs.Construct"
|
|
10537
|
-
}
|
|
10538
|
-
},
|
|
10539
|
-
{
|
|
10540
|
-
"docs": {
|
|
10541
|
-
"summary": "Identifier of the construct."
|
|
10542
|
-
},
|
|
10543
|
-
"name": "id",
|
|
10544
|
-
"type": {
|
|
10586
|
+
"name": "licenseConfigurationArns",
|
|
10587
|
+
"optional": true,
|
|
10588
|
+
"type": {
|
|
10589
|
+
"collection": {
|
|
10590
|
+
"elementtype": {
|
|
10545
10591
|
"primitive": "string"
|
|
10546
|
-
}
|
|
10547
|
-
|
|
10548
|
-
],
|
|
10549
|
-
"returns": {
|
|
10550
|
-
"type": {
|
|
10551
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10592
|
+
},
|
|
10593
|
+
"kind": "array"
|
|
10552
10594
|
}
|
|
10553
|
-
}
|
|
10554
|
-
"static": true
|
|
10595
|
+
}
|
|
10555
10596
|
},
|
|
10556
10597
|
{
|
|
10598
|
+
"abstract": true,
|
|
10557
10599
|
"docs": {
|
|
10600
|
+
"default": "The current region is used",
|
|
10558
10601
|
"stability": "experimental",
|
|
10559
|
-
"summary": "
|
|
10602
|
+
"summary": "The target region to distribute AMIs to."
|
|
10560
10603
|
},
|
|
10604
|
+
"immutable": true,
|
|
10561
10605
|
"locationInModule": {
|
|
10562
|
-
"filename": "lib/
|
|
10563
|
-
"line":
|
|
10606
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10607
|
+
"line": 194
|
|
10564
10608
|
},
|
|
10565
|
-
"name": "
|
|
10566
|
-
"
|
|
10567
|
-
|
|
10568
|
-
|
|
10569
|
-
|
|
10570
|
-
|
|
10571
|
-
|
|
10572
|
-
|
|
10573
|
-
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10577
|
-
|
|
10578
|
-
|
|
10609
|
+
"name": "region",
|
|
10610
|
+
"optional": true,
|
|
10611
|
+
"type": {
|
|
10612
|
+
"primitive": "string"
|
|
10613
|
+
}
|
|
10614
|
+
},
|
|
10615
|
+
{
|
|
10616
|
+
"abstract": true,
|
|
10617
|
+
"docs": {
|
|
10618
|
+
"default": "None",
|
|
10619
|
+
"stability": "experimental",
|
|
10620
|
+
"summary": "The SSM parameters to create or update for the distributed AMIs."
|
|
10621
|
+
},
|
|
10622
|
+
"immutable": true,
|
|
10623
|
+
"locationInModule": {
|
|
10624
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10625
|
+
"line": 243
|
|
10626
|
+
},
|
|
10627
|
+
"name": "ssmParameters",
|
|
10628
|
+
"optional": true,
|
|
10629
|
+
"type": {
|
|
10630
|
+
"collection": {
|
|
10631
|
+
"elementtype": {
|
|
10632
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.SSMParameterConfigurations"
|
|
10579
10633
|
},
|
|
10580
|
-
"
|
|
10581
|
-
"type": {
|
|
10582
|
-
"primitive": "string"
|
|
10583
|
-
}
|
|
10584
|
-
}
|
|
10585
|
-
],
|
|
10586
|
-
"returns": {
|
|
10587
|
-
"type": {
|
|
10588
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10634
|
+
"kind": "array"
|
|
10589
10635
|
}
|
|
10590
|
-
}
|
|
10591
|
-
"static": true
|
|
10636
|
+
}
|
|
10592
10637
|
}
|
|
10593
10638
|
],
|
|
10594
|
-
"
|
|
10595
|
-
"symbolId": "lib/workflow:AwsManagedWorkflow"
|
|
10639
|
+
"symbolId": "lib/distribution-configuration:AmiDistribution"
|
|
10596
10640
|
},
|
|
10597
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
10641
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission": {
|
|
10598
10642
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
10599
10643
|
"datatype": true,
|
|
10600
10644
|
"docs": {
|
|
10601
10645
|
"stability": "experimental",
|
|
10602
|
-
"summary": "
|
|
10603
|
-
"example": "//
|
|
10646
|
+
"summary": "The launch permissions for the AMI, defining which principals are allowed to access the AMI.",
|
|
10647
|
+
"example": "const distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'DistributionConfiguration', {\n distributionConfigurationName: 'test-distribution-configuration',\n description: 'A Distribution Configuration',\n amiDistributions: [\n {\n // Distribute AMI to us-east-2 and publish the AMI ID to an SSM parameter\n region: 'us-east-2',\n ssmParameters: [\n {\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossRegionParameter', {\n parameterName: '/imagebuilder/ami',\n forceDynamicReference: true\n })\n }\n ]\n }\n ]\n});\n\n// For AMI-based image builds - add an AMI distribution in the current region\ndistributionConfiguration.addAmiDistributions({\n amiName: 'imagebuilder-{{ imagebuilder:buildDate }}',\n amiDescription: 'Build AMI',\n amiKmsKey: kms.Key.fromLookup(this, 'ComponentKey', { aliasName: 'alias/distribution-encryption-key' }),\n // Copy the AMI to different accounts\n amiTargetAccountIds: ['123456789012', '098765432109'],\n // Add launch permissions on the AMI\n amiLaunchPermission: {\n organizationArns: [\n this.formatArn({ region: '', service: 'organizations', resource: 'organization', resourceName: 'o-1234567abc' })\n ],\n organizationalUnitArns: [\n this.formatArn({\n region: '',\n service: 'organizations',\n resource: 'ou',\n resourceName: 'o-1234567abc/ou-a123-b4567890'\n })\n ],\n isPublicUserGroup: true,\n accountIds: ['234567890123']\n },\n // Attach tags to the AMI\n amiTags: {\n Environment: 'production',\n Version: '{{ imagebuilder:buildVersion }}'\n },\n // Optional - publish the distributed AMI ID to an SSM parameter\n ssmParameters: [\n {\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'Parameter', {\n parameterName: '/imagebuilder/ami',\n forceDynamicReference: true\n })\n },\n {\n amiAccount: '098765432109',\n dataType: ssm.ParameterDataType.TEXT,\n parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossAccountParameter', {\n parameterName: 'imagebuilder-prod-ami',\n forceDynamicReference: true\n })\n }\n ],\n // Optional - create a new launch template version with the distributed AMI ID\n launchTemplates: [\n {\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'LaunchTemplate', {\n launchTemplateId: 'lt-1234'\n }),\n setDefaultVersion: true\n },\n {\n accountId: '123456789012',\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'CrossAccountLaunchTemplate', {\n launchTemplateId: 'lt-5678'\n }),\n setDefaultVersion: true\n }\n ],\n // Optional - enable Fast Launch on an imported launch template\n fastLaunchConfigurations: [\n {\n enabled: true,\n launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'FastLaunchLT', {\n launchTemplateName: 'fast-launch-lt'\n }),\n maxParallelLaunches: 10,\n targetSnapshotCount: 2\n }\n ],\n // Optional - license configurations to apply to the AMI\n licenseConfigurationArns: [\n 'arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-abcdefghijklmnopqrstuvwxyz'\n ]\n});",
|
|
10604
10648
|
"custom": {
|
|
10605
|
-
"exampleMetadata": "
|
|
10649
|
+
"exampleMetadata": "infused"
|
|
10606
10650
|
}
|
|
10607
10651
|
},
|
|
10608
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10652
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission",
|
|
10609
10653
|
"kind": "interface",
|
|
10610
10654
|
"locationInModule": {
|
|
10611
|
-
"filename": "lib/
|
|
10612
|
-
"line":
|
|
10655
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10656
|
+
"line": 54
|
|
10613
10657
|
},
|
|
10614
|
-
"name": "
|
|
10658
|
+
"name": "AmiLaunchPermission",
|
|
10615
10659
|
"properties": [
|
|
10616
10660
|
{
|
|
10617
10661
|
"abstract": true,
|
|
10618
10662
|
"docs": {
|
|
10663
|
+
"default": "None",
|
|
10619
10664
|
"stability": "experimental",
|
|
10620
|
-
"summary": "The
|
|
10665
|
+
"summary": "The AWS account IDs to share the AMI with."
|
|
10621
10666
|
},
|
|
10622
10667
|
"immutable": true,
|
|
10623
10668
|
"locationInModule": {
|
|
10624
|
-
"filename": "lib/
|
|
10625
|
-
"line":
|
|
10669
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10670
|
+
"line": 90
|
|
10626
10671
|
},
|
|
10627
|
-
"name": "
|
|
10672
|
+
"name": "accountIds",
|
|
10673
|
+
"optional": true,
|
|
10628
10674
|
"type": {
|
|
10629
|
-
"
|
|
10675
|
+
"collection": {
|
|
10676
|
+
"elementtype": {
|
|
10677
|
+
"primitive": "string"
|
|
10678
|
+
},
|
|
10679
|
+
"kind": "array"
|
|
10680
|
+
}
|
|
10630
10681
|
}
|
|
10631
10682
|
},
|
|
10632
10683
|
{
|
|
10633
10684
|
"abstract": true,
|
|
10634
10685
|
"docs": {
|
|
10686
|
+
"default": "false",
|
|
10687
|
+
"remarks": "WARNING: Making an AMI public exposes it to any AWS account globally.\n Ensure the AMI does not contain:\n - Sensitive data or credentials\n - Proprietary software or configurations\n - Internal network information or security settings\n\nFor more information on blocking public access for AMIs, see: [Understand block public access for AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html)",
|
|
10635
10688
|
"stability": "experimental",
|
|
10636
|
-
"summary": "
|
|
10689
|
+
"summary": "Whether to make the AMI public. Block public access for AMIs must be disabled to make the AMI public."
|
|
10637
10690
|
},
|
|
10638
10691
|
"immutable": true,
|
|
10639
10692
|
"locationInModule": {
|
|
10640
|
-
"filename": "lib/
|
|
10641
|
-
"line":
|
|
10693
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10694
|
+
"line": 83
|
|
10642
10695
|
},
|
|
10643
|
-
"name": "
|
|
10696
|
+
"name": "isPublicUserGroup",
|
|
10697
|
+
"optional": true,
|
|
10644
10698
|
"type": {
|
|
10645
|
-
"
|
|
10699
|
+
"primitive": "boolean"
|
|
10700
|
+
}
|
|
10701
|
+
},
|
|
10702
|
+
{
|
|
10703
|
+
"abstract": true,
|
|
10704
|
+
"docs": {
|
|
10705
|
+
"default": "None",
|
|
10706
|
+
"stability": "experimental",
|
|
10707
|
+
"summary": "The ARNs for the AWS Organizations organizational units to share the AMI with."
|
|
10708
|
+
},
|
|
10709
|
+
"immutable": true,
|
|
10710
|
+
"locationInModule": {
|
|
10711
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10712
|
+
"line": 60
|
|
10713
|
+
},
|
|
10714
|
+
"name": "organizationalUnitArns",
|
|
10715
|
+
"optional": true,
|
|
10716
|
+
"type": {
|
|
10717
|
+
"collection": {
|
|
10718
|
+
"elementtype": {
|
|
10719
|
+
"primitive": "string"
|
|
10720
|
+
},
|
|
10721
|
+
"kind": "array"
|
|
10722
|
+
}
|
|
10723
|
+
}
|
|
10724
|
+
},
|
|
10725
|
+
{
|
|
10726
|
+
"abstract": true,
|
|
10727
|
+
"docs": {
|
|
10728
|
+
"default": "None",
|
|
10729
|
+
"stability": "experimental",
|
|
10730
|
+
"summary": "The ARNs for the AWS Organization that you want to share the AMI with."
|
|
10731
|
+
},
|
|
10732
|
+
"immutable": true,
|
|
10733
|
+
"locationInModule": {
|
|
10734
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10735
|
+
"line": 67
|
|
10736
|
+
},
|
|
10737
|
+
"name": "organizationArns",
|
|
10738
|
+
"optional": true,
|
|
10739
|
+
"type": {
|
|
10740
|
+
"collection": {
|
|
10741
|
+
"elementtype": {
|
|
10742
|
+
"primitive": "string"
|
|
10743
|
+
},
|
|
10744
|
+
"kind": "array"
|
|
10745
|
+
}
|
|
10646
10746
|
}
|
|
10647
10747
|
}
|
|
10648
10748
|
],
|
|
10649
|
-
"symbolId": "lib/
|
|
10749
|
+
"symbolId": "lib/distribution-configuration:AmiLaunchPermission"
|
|
10650
10750
|
},
|
|
10651
10751
|
"@aws-cdk/aws-imagebuilder-alpha.AwsMarketplaceComponent": {
|
|
10652
10752
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
@@ -10667,7 +10767,7 @@
|
|
|
10667
10767
|
"kind": "class",
|
|
10668
10768
|
"locationInModule": {
|
|
10669
10769
|
"filename": "lib/component.ts",
|
|
10670
|
-
"line":
|
|
10770
|
+
"line": 852
|
|
10671
10771
|
},
|
|
10672
10772
|
"methods": [
|
|
10673
10773
|
{
|
|
@@ -10677,7 +10777,7 @@
|
|
|
10677
10777
|
},
|
|
10678
10778
|
"locationInModule": {
|
|
10679
10779
|
"filename": "lib/component.ts",
|
|
10680
|
-
"line":
|
|
10780
|
+
"line": 860
|
|
10681
10781
|
},
|
|
10682
10782
|
"name": "fromAwsMarketplaceComponentAttributes",
|
|
10683
10783
|
"parameters": [
|
|
@@ -10735,7 +10835,7 @@
|
|
|
10735
10835
|
"kind": "interface",
|
|
10736
10836
|
"locationInModule": {
|
|
10737
10837
|
"filename": "lib/component.ts",
|
|
10738
|
-
"line":
|
|
10838
|
+
"line": 155
|
|
10739
10839
|
},
|
|
10740
10840
|
"name": "AwsMarketplaceComponentAttributes",
|
|
10741
10841
|
"properties": [
|
|
@@ -10749,7 +10849,7 @@
|
|
|
10749
10849
|
"immutable": true,
|
|
10750
10850
|
"locationInModule": {
|
|
10751
10851
|
"filename": "lib/component.ts",
|
|
10752
|
-
"line":
|
|
10852
|
+
"line": 159
|
|
10753
10853
|
},
|
|
10754
10854
|
"name": "componentName",
|
|
10755
10855
|
"type": {
|
|
@@ -10765,7 +10865,7 @@
|
|
|
10765
10865
|
"immutable": true,
|
|
10766
10866
|
"locationInModule": {
|
|
10767
10867
|
"filename": "lib/component.ts",
|
|
10768
|
-
"line":
|
|
10868
|
+
"line": 164
|
|
10769
10869
|
},
|
|
10770
10870
|
"name": "marketplaceProductId",
|
|
10771
10871
|
"type": {
|
|
@@ -10782,7 +10882,7 @@
|
|
|
10782
10882
|
"immutable": true,
|
|
10783
10883
|
"locationInModule": {
|
|
10784
10884
|
"filename": "lib/component.ts",
|
|
10785
|
-
"line":
|
|
10885
|
+
"line": 171
|
|
10786
10886
|
},
|
|
10787
10887
|
"name": "componentVersion",
|
|
10788
10888
|
"optional": true,
|
|
@@ -11270,7 +11370,7 @@
|
|
|
11270
11370
|
},
|
|
11271
11371
|
"locationInModule": {
|
|
11272
11372
|
"filename": "lib/component.ts",
|
|
11273
|
-
"line":
|
|
11373
|
+
"line": 1029
|
|
11274
11374
|
},
|
|
11275
11375
|
"parameters": [
|
|
11276
11376
|
{
|
|
@@ -11299,7 +11399,7 @@
|
|
|
11299
11399
|
"kind": "class",
|
|
11300
11400
|
"locationInModule": {
|
|
11301
11401
|
"filename": "lib/component.ts",
|
|
11302
|
-
"line":
|
|
11402
|
+
"line": 925
|
|
11303
11403
|
},
|
|
11304
11404
|
"methods": [
|
|
11305
11405
|
{
|
|
@@ -11309,7 +11409,7 @@
|
|
|
11309
11409
|
},
|
|
11310
11410
|
"locationInModule": {
|
|
11311
11411
|
"filename": "lib/component.ts",
|
|
11312
|
-
"line":
|
|
11412
|
+
"line": 933
|
|
11313
11413
|
},
|
|
11314
11414
|
"name": "fromComponentArn",
|
|
11315
11415
|
"parameters": [
|
|
@@ -11347,7 +11447,7 @@
|
|
|
11347
11447
|
},
|
|
11348
11448
|
"locationInModule": {
|
|
11349
11449
|
"filename": "lib/component.ts",
|
|
11350
|
-
"line":
|
|
11450
|
+
"line": 950
|
|
11351
11451
|
},
|
|
11352
11452
|
"name": "fromComponentAttributes",
|
|
11353
11453
|
"parameters": [
|
|
@@ -11385,7 +11485,7 @@
|
|
|
11385
11485
|
},
|
|
11386
11486
|
"locationInModule": {
|
|
11387
11487
|
"filename": "lib/component.ts",
|
|
11388
|
-
"line":
|
|
11488
|
+
"line": 941
|
|
11389
11489
|
},
|
|
11390
11490
|
"name": "fromComponentName",
|
|
11391
11491
|
"parameters": [
|
|
@@ -11422,7 +11522,7 @@
|
|
|
11422
11522
|
},
|
|
11423
11523
|
"locationInModule": {
|
|
11424
11524
|
"filename": "lib/component.ts",
|
|
11425
|
-
"line":
|
|
11525
|
+
"line": 996
|
|
11426
11526
|
},
|
|
11427
11527
|
"name": "isComponent",
|
|
11428
11528
|
"parameters": [
|
|
@@ -11447,7 +11547,7 @@
|
|
|
11447
11547
|
},
|
|
11448
11548
|
"locationInModule": {
|
|
11449
11549
|
"filename": "lib/component.ts",
|
|
11450
|
-
"line":
|
|
11550
|
+
"line": 901
|
|
11451
11551
|
},
|
|
11452
11552
|
"name": "grant",
|
|
11453
11553
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11486,7 +11586,7 @@
|
|
|
11486
11586
|
},
|
|
11487
11587
|
"locationInModule": {
|
|
11488
11588
|
"filename": "lib/component.ts",
|
|
11489
|
-
"line":
|
|
11589
|
+
"line": 915
|
|
11490
11590
|
},
|
|
11491
11591
|
"name": "grantRead",
|
|
11492
11592
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11519,7 +11619,7 @@
|
|
|
11519
11619
|
"immutable": true,
|
|
11520
11620
|
"locationInModule": {
|
|
11521
11621
|
"filename": "lib/component.ts",
|
|
11522
|
-
"line":
|
|
11622
|
+
"line": 928
|
|
11523
11623
|
},
|
|
11524
11624
|
"name": "PROPERTY_INJECTION_ID",
|
|
11525
11625
|
"static": true,
|
|
@@ -11535,7 +11635,7 @@
|
|
|
11535
11635
|
"immutable": true,
|
|
11536
11636
|
"locationInModule": {
|
|
11537
11637
|
"filename": "lib/component.ts",
|
|
11538
|
-
"line":
|
|
11638
|
+
"line": 1003
|
|
11539
11639
|
},
|
|
11540
11640
|
"name": "componentArn",
|
|
11541
11641
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11551,7 +11651,7 @@
|
|
|
11551
11651
|
"immutable": true,
|
|
11552
11652
|
"locationInModule": {
|
|
11553
11653
|
"filename": "lib/component.ts",
|
|
11554
|
-
"line":
|
|
11654
|
+
"line": 1008
|
|
11555
11655
|
},
|
|
11556
11656
|
"name": "componentName",
|
|
11557
11657
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11570,7 +11670,7 @@
|
|
|
11570
11670
|
"immutable": true,
|
|
11571
11671
|
"locationInModule": {
|
|
11572
11672
|
"filename": "lib/component.ts",
|
|
11573
|
-
"line":
|
|
11673
|
+
"line": 1025
|
|
11574
11674
|
},
|
|
11575
11675
|
"name": "componentType",
|
|
11576
11676
|
"type": {
|
|
@@ -11585,7 +11685,7 @@
|
|
|
11585
11685
|
"immutable": true,
|
|
11586
11686
|
"locationInModule": {
|
|
11587
11687
|
"filename": "lib/component.ts",
|
|
11588
|
-
"line":
|
|
11688
|
+
"line": 1013
|
|
11589
11689
|
},
|
|
11590
11690
|
"name": "componentVersion",
|
|
11591
11691
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11601,7 +11701,7 @@
|
|
|
11601
11701
|
"immutable": true,
|
|
11602
11702
|
"locationInModule": {
|
|
11603
11703
|
"filename": "lib/component.ts",
|
|
11604
|
-
"line":
|
|
11704
|
+
"line": 1018
|
|
11605
11705
|
},
|
|
11606
11706
|
"name": "encrypted",
|
|
11607
11707
|
"type": {
|
|
@@ -11615,7 +11715,7 @@
|
|
|
11615
11715
|
"immutable": true,
|
|
11616
11716
|
"locationInModule": {
|
|
11617
11717
|
"filename": "lib/component.ts",
|
|
11618
|
-
"line":
|
|
11718
|
+
"line": 1027
|
|
11619
11719
|
},
|
|
11620
11720
|
"name": "kmsKey",
|
|
11621
11721
|
"optional": true,
|
|
@@ -11641,7 +11741,7 @@
|
|
|
11641
11741
|
"kind": "enum",
|
|
11642
11742
|
"locationInModule": {
|
|
11643
11743
|
"filename": "lib/component.ts",
|
|
11644
|
-
"line":
|
|
11744
|
+
"line": 390
|
|
11645
11745
|
},
|
|
11646
11746
|
"members": [
|
|
11647
11747
|
{
|
|
@@ -12012,7 +12112,7 @@
|
|
|
12012
12112
|
},
|
|
12013
12113
|
"locationInModule": {
|
|
12014
12114
|
"filename": "lib/component.ts",
|
|
12015
|
-
"line":
|
|
12115
|
+
"line": 357
|
|
12016
12116
|
},
|
|
12017
12117
|
"parameters": [
|
|
12018
12118
|
{
|
|
@@ -12033,7 +12133,7 @@
|
|
|
12033
12133
|
"kind": "class",
|
|
12034
12134
|
"locationInModule": {
|
|
12035
12135
|
"filename": "lib/component.ts",
|
|
12036
|
-
"line":
|
|
12136
|
+
"line": 337
|
|
12037
12137
|
},
|
|
12038
12138
|
"methods": [
|
|
12039
12139
|
{
|
|
@@ -12043,7 +12143,7 @@
|
|
|
12043
12143
|
},
|
|
12044
12144
|
"locationInModule": {
|
|
12045
12145
|
"filename": "lib/component.ts",
|
|
12046
|
-
"line":
|
|
12146
|
+
"line": 343
|
|
12047
12147
|
},
|
|
12048
12148
|
"name": "fromString",
|
|
12049
12149
|
"parameters": [
|
|
@@ -12075,7 +12175,7 @@
|
|
|
12075
12175
|
"immutable": true,
|
|
12076
12176
|
"locationInModule": {
|
|
12077
12177
|
"filename": "lib/component.ts",
|
|
12078
|
-
"line":
|
|
12178
|
+
"line": 350
|
|
12079
12179
|
},
|
|
12080
12180
|
"name": "type",
|
|
12081
12181
|
"type": {
|
|
@@ -12090,7 +12190,7 @@
|
|
|
12090
12190
|
"immutable": true,
|
|
12091
12191
|
"locationInModule": {
|
|
12092
12192
|
"filename": "lib/component.ts",
|
|
12093
|
-
"line":
|
|
12193
|
+
"line": 355
|
|
12094
12194
|
},
|
|
12095
12195
|
"name": "value",
|
|
12096
12196
|
"type": {
|
|
@@ -12115,25 +12215,12 @@
|
|
|
12115
12215
|
"initializer": {
|
|
12116
12216
|
"docs": {
|
|
12117
12217
|
"stability": "experimental"
|
|
12118
|
-
}
|
|
12119
|
-
"locationInModule": {
|
|
12120
|
-
"filename": "lib/component.ts",
|
|
12121
|
-
"line": 796
|
|
12122
|
-
},
|
|
12123
|
-
"parameters": [
|
|
12124
|
-
{
|
|
12125
|
-
"name": "value",
|
|
12126
|
-
"type": {
|
|
12127
|
-
"primitive": "string"
|
|
12128
|
-
}
|
|
12129
|
-
}
|
|
12130
|
-
],
|
|
12131
|
-
"protected": true
|
|
12218
|
+
}
|
|
12132
12219
|
},
|
|
12133
12220
|
"kind": "class",
|
|
12134
12221
|
"locationInModule": {
|
|
12135
12222
|
"filename": "lib/component.ts",
|
|
12136
|
-
"line":
|
|
12223
|
+
"line": 690
|
|
12137
12224
|
},
|
|
12138
12225
|
"methods": [
|
|
12139
12226
|
{
|
|
@@ -12143,7 +12230,7 @@
|
|
|
12143
12230
|
},
|
|
12144
12231
|
"locationInModule": {
|
|
12145
12232
|
"filename": "lib/component.ts",
|
|
12146
|
-
"line":
|
|
12233
|
+
"line": 699
|
|
12147
12234
|
},
|
|
12148
12235
|
"name": "fromAsset",
|
|
12149
12236
|
"parameters": [
|
|
@@ -12199,7 +12286,7 @@
|
|
|
12199
12286
|
},
|
|
12200
12287
|
"locationInModule": {
|
|
12201
12288
|
"filename": "lib/component.ts",
|
|
12202
|
-
"line":
|
|
12289
|
+
"line": 734
|
|
12203
12290
|
},
|
|
12204
12291
|
"name": "fromComponentDocumentJsonObject",
|
|
12205
12292
|
"parameters": [
|
|
@@ -12227,7 +12314,7 @@
|
|
|
12227
12314
|
},
|
|
12228
12315
|
"locationInModule": {
|
|
12229
12316
|
"filename": "lib/component.ts",
|
|
12230
|
-
"line":
|
|
12317
|
+
"line": 768
|
|
12231
12318
|
},
|
|
12232
12319
|
"name": "fromInline",
|
|
12233
12320
|
"parameters": [
|
|
@@ -12255,7 +12342,7 @@
|
|
|
12255
12342
|
},
|
|
12256
12343
|
"locationInModule": {
|
|
12257
12344
|
"filename": "lib/component.ts",
|
|
12258
|
-
"line":
|
|
12345
|
+
"line": 724
|
|
12259
12346
|
},
|
|
12260
12347
|
"name": "fromJsonObject",
|
|
12261
12348
|
"parameters": [
|
|
@@ -12288,7 +12375,7 @@
|
|
|
12288
12375
|
},
|
|
12289
12376
|
"locationInModule": {
|
|
12290
12377
|
"filename": "lib/component.ts",
|
|
12291
|
-
"line":
|
|
12378
|
+
"line": 715
|
|
12292
12379
|
},
|
|
12293
12380
|
"name": "fromS3",
|
|
12294
12381
|
"parameters": [
|
|
@@ -12317,43 +12404,87 @@
|
|
|
12317
12404
|
}
|
|
12318
12405
|
},
|
|
12319
12406
|
"static": true
|
|
12407
|
+
},
|
|
12408
|
+
{
|
|
12409
|
+
"abstract": true,
|
|
12410
|
+
"docs": {
|
|
12411
|
+
"remarks": "- For inline components, data is the component text\n- For S3-backed components, uri is the S3 URL",
|
|
12412
|
+
"stability": "experimental",
|
|
12413
|
+
"summary": "The rendered component data value, for use in CloudFormation."
|
|
12414
|
+
},
|
|
12415
|
+
"locationInModule": {
|
|
12416
|
+
"filename": "lib/component.ts",
|
|
12417
|
+
"line": 777
|
|
12418
|
+
},
|
|
12419
|
+
"name": "render",
|
|
12420
|
+
"returns": {
|
|
12421
|
+
"type": {
|
|
12422
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig"
|
|
12423
|
+
}
|
|
12424
|
+
}
|
|
12320
12425
|
}
|
|
12321
12426
|
],
|
|
12322
12427
|
"name": "ComponentData",
|
|
12428
|
+
"symbolId": "lib/component:ComponentData"
|
|
12429
|
+
},
|
|
12430
|
+
"@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig": {
|
|
12431
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
12432
|
+
"datatype": true,
|
|
12433
|
+
"docs": {
|
|
12434
|
+
"remarks": "- For inline components, data is the component text\n- For S3-backed components, uri is the S3 URL",
|
|
12435
|
+
"stability": "experimental",
|
|
12436
|
+
"summary": "The rendered component data value, for use in CloudFormation.",
|
|
12437
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as imagebuilder_alpha from '@aws-cdk/aws-imagebuilder-alpha';\nconst componentDataConfig: imagebuilder_alpha.ComponentDataConfig = {\n data: 'data',\n uri: 'uri',\n};",
|
|
12438
|
+
"custom": {
|
|
12439
|
+
"exampleMetadata": "fixture=_generated"
|
|
12440
|
+
}
|
|
12441
|
+
},
|
|
12442
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig",
|
|
12443
|
+
"kind": "interface",
|
|
12444
|
+
"locationInModule": {
|
|
12445
|
+
"filename": "lib/component.ts",
|
|
12446
|
+
"line": 671
|
|
12447
|
+
},
|
|
12448
|
+
"name": "ComponentDataConfig",
|
|
12323
12449
|
"properties": [
|
|
12324
12450
|
{
|
|
12325
12451
|
"abstract": true,
|
|
12326
12452
|
"docs": {
|
|
12453
|
+
"default": "- none if uri is set",
|
|
12327
12454
|
"stability": "experimental",
|
|
12328
|
-
"summary": "
|
|
12455
|
+
"summary": "The rendered component data, for use in CloudFormation."
|
|
12329
12456
|
},
|
|
12330
12457
|
"immutable": true,
|
|
12331
12458
|
"locationInModule": {
|
|
12332
12459
|
"filename": "lib/component.ts",
|
|
12333
|
-
"line":
|
|
12460
|
+
"line": 677
|
|
12334
12461
|
},
|
|
12335
|
-
"name": "
|
|
12462
|
+
"name": "data",
|
|
12463
|
+
"optional": true,
|
|
12336
12464
|
"type": {
|
|
12337
|
-
"primitive": "
|
|
12465
|
+
"primitive": "string"
|
|
12338
12466
|
}
|
|
12339
12467
|
},
|
|
12340
12468
|
{
|
|
12469
|
+
"abstract": true,
|
|
12341
12470
|
"docs": {
|
|
12471
|
+
"default": "- none if data is set",
|
|
12342
12472
|
"stability": "experimental",
|
|
12343
|
-
"summary": "The
|
|
12473
|
+
"summary": "The rendered component data URI, for use in CloudFormation."
|
|
12344
12474
|
},
|
|
12345
12475
|
"immutable": true,
|
|
12346
12476
|
"locationInModule": {
|
|
12347
12477
|
"filename": "lib/component.ts",
|
|
12348
|
-
"line":
|
|
12478
|
+
"line": 684
|
|
12349
12479
|
},
|
|
12350
|
-
"name": "
|
|
12480
|
+
"name": "uri",
|
|
12481
|
+
"optional": true,
|
|
12351
12482
|
"type": {
|
|
12352
12483
|
"primitive": "string"
|
|
12353
12484
|
}
|
|
12354
12485
|
}
|
|
12355
12486
|
],
|
|
12356
|
-
"symbolId": "lib/component:
|
|
12487
|
+
"symbolId": "lib/component:ComponentDataConfig"
|
|
12357
12488
|
},
|
|
12358
12489
|
"@aws-cdk/aws-imagebuilder-alpha.ComponentDocument": {
|
|
12359
12490
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
@@ -12370,7 +12501,7 @@
|
|
|
12370
12501
|
"kind": "interface",
|
|
12371
12502
|
"locationInModule": {
|
|
12372
12503
|
"filename": "lib/component.ts",
|
|
12373
|
-
"line":
|
|
12504
|
+
"line": 177
|
|
12374
12505
|
},
|
|
12375
12506
|
"name": "ComponentDocument",
|
|
12376
12507
|
"properties": [
|
|
@@ -12383,7 +12514,7 @@
|
|
|
12383
12514
|
"immutable": true,
|
|
12384
12515
|
"locationInModule": {
|
|
12385
12516
|
"filename": "lib/component.ts",
|
|
12386
|
-
"line":
|
|
12517
|
+
"line": 186
|
|
12387
12518
|
},
|
|
12388
12519
|
"name": "phases",
|
|
12389
12520
|
"type": {
|
|
@@ -12404,7 +12535,7 @@
|
|
|
12404
12535
|
"immutable": true,
|
|
12405
12536
|
"locationInModule": {
|
|
12406
12537
|
"filename": "lib/component.ts",
|
|
12407
|
-
"line":
|
|
12538
|
+
"line": 181
|
|
12408
12539
|
},
|
|
12409
12540
|
"name": "schemaVersion",
|
|
12410
12541
|
"type": {
|
|
@@ -12421,7 +12552,7 @@
|
|
|
12421
12552
|
"immutable": true,
|
|
12422
12553
|
"locationInModule": {
|
|
12423
12554
|
"filename": "lib/component.ts",
|
|
12424
|
-
"line":
|
|
12555
|
+
"line": 207
|
|
12425
12556
|
},
|
|
12426
12557
|
"name": "constants",
|
|
12427
12558
|
"optional": true,
|
|
@@ -12444,7 +12575,7 @@
|
|
|
12444
12575
|
"immutable": true,
|
|
12445
12576
|
"locationInModule": {
|
|
12446
12577
|
"filename": "lib/component.ts",
|
|
12447
|
-
"line":
|
|
12578
|
+
"line": 200
|
|
12448
12579
|
},
|
|
12449
12580
|
"name": "description",
|
|
12450
12581
|
"optional": true,
|
|
@@ -12462,7 +12593,7 @@
|
|
|
12462
12593
|
"immutable": true,
|
|
12463
12594
|
"locationInModule": {
|
|
12464
12595
|
"filename": "lib/component.ts",
|
|
12465
|
-
"line":
|
|
12596
|
+
"line": 193
|
|
12466
12597
|
},
|
|
12467
12598
|
"name": "name",
|
|
12468
12599
|
"optional": true,
|
|
@@ -12480,7 +12611,7 @@
|
|
|
12480
12611
|
"immutable": true,
|
|
12481
12612
|
"locationInModule": {
|
|
12482
12613
|
"filename": "lib/component.ts",
|
|
12483
|
-
"line":
|
|
12614
|
+
"line": 214
|
|
12484
12615
|
},
|
|
12485
12616
|
"name": "parameters",
|
|
12486
12617
|
"optional": true,
|
|
@@ -12512,7 +12643,7 @@
|
|
|
12512
12643
|
"kind": "interface",
|
|
12513
12644
|
"locationInModule": {
|
|
12514
12645
|
"filename": "lib/component.ts",
|
|
12515
|
-
"line":
|
|
12646
|
+
"line": 318
|
|
12516
12647
|
},
|
|
12517
12648
|
"name": "ComponentDocumentForLoop",
|
|
12518
12649
|
"properties": [
|
|
@@ -12526,7 +12657,7 @@
|
|
|
12526
12657
|
"immutable": true,
|
|
12527
12658
|
"locationInModule": {
|
|
12528
12659
|
"filename": "lib/component.ts",
|
|
12529
|
-
"line":
|
|
12660
|
+
"line": 326
|
|
12530
12661
|
},
|
|
12531
12662
|
"name": "end",
|
|
12532
12663
|
"type": {
|
|
@@ -12543,7 +12674,7 @@
|
|
|
12543
12674
|
"immutable": true,
|
|
12544
12675
|
"locationInModule": {
|
|
12545
12676
|
"filename": "lib/component.ts",
|
|
12546
|
-
"line":
|
|
12677
|
+
"line": 322
|
|
12547
12678
|
},
|
|
12548
12679
|
"name": "start",
|
|
12549
12680
|
"type": {
|
|
@@ -12560,7 +12691,7 @@
|
|
|
12560
12691
|
"immutable": true,
|
|
12561
12692
|
"locationInModule": {
|
|
12562
12693
|
"filename": "lib/component.ts",
|
|
12563
|
-
"line":
|
|
12694
|
+
"line": 331
|
|
12564
12695
|
},
|
|
12565
12696
|
"name": "updateBy",
|
|
12566
12697
|
"type": {
|
|
@@ -12585,7 +12716,7 @@
|
|
|
12585
12716
|
"kind": "interface",
|
|
12586
12717
|
"locationInModule": {
|
|
12587
12718
|
"filename": "lib/component.ts",
|
|
12588
|
-
"line":
|
|
12719
|
+
"line": 290
|
|
12589
12720
|
},
|
|
12590
12721
|
"name": "ComponentDocumentLoop",
|
|
12591
12722
|
"properties": [
|
|
@@ -12599,7 +12730,7 @@
|
|
|
12599
12730
|
"immutable": true,
|
|
12600
12731
|
"locationInModule": {
|
|
12601
12732
|
"filename": "lib/component.ts",
|
|
12602
|
-
"line":
|
|
12733
|
+
"line": 304
|
|
12603
12734
|
},
|
|
12604
12735
|
"name": "for",
|
|
12605
12736
|
"optional": true,
|
|
@@ -12617,7 +12748,7 @@
|
|
|
12617
12748
|
"immutable": true,
|
|
12618
12749
|
"locationInModule": {
|
|
12619
12750
|
"filename": "lib/component.ts",
|
|
12620
|
-
"line":
|
|
12751
|
+
"line": 311
|
|
12621
12752
|
},
|
|
12622
12753
|
"name": "forEach",
|
|
12623
12754
|
"optional": true,
|
|
@@ -12640,7 +12771,7 @@
|
|
|
12640
12771
|
"immutable": true,
|
|
12641
12772
|
"locationInModule": {
|
|
12642
12773
|
"filename": "lib/component.ts",
|
|
12643
|
-
"line":
|
|
12774
|
+
"line": 296
|
|
12644
12775
|
},
|
|
12645
12776
|
"name": "name",
|
|
12646
12777
|
"optional": true,
|
|
@@ -12666,7 +12797,7 @@
|
|
|
12666
12797
|
"kind": "interface",
|
|
12667
12798
|
"locationInModule": {
|
|
12668
12799
|
"filename": "lib/component.ts",
|
|
12669
|
-
"line":
|
|
12800
|
+
"line": 366
|
|
12670
12801
|
},
|
|
12671
12802
|
"name": "ComponentDocumentParameterDefinition",
|
|
12672
12803
|
"properties": [
|
|
@@ -12679,7 +12810,7 @@
|
|
|
12679
12810
|
"immutable": true,
|
|
12680
12811
|
"locationInModule": {
|
|
12681
12812
|
"filename": "lib/component.ts",
|
|
12682
|
-
"line":
|
|
12813
|
+
"line": 370
|
|
12683
12814
|
},
|
|
12684
12815
|
"name": "type",
|
|
12685
12816
|
"type": {
|
|
@@ -12696,7 +12827,7 @@
|
|
|
12696
12827
|
"immutable": true,
|
|
12697
12828
|
"locationInModule": {
|
|
12698
12829
|
"filename": "lib/component.ts",
|
|
12699
|
-
"line":
|
|
12830
|
+
"line": 377
|
|
12700
12831
|
},
|
|
12701
12832
|
"name": "default",
|
|
12702
12833
|
"optional": true,
|
|
@@ -12714,7 +12845,7 @@
|
|
|
12714
12845
|
"immutable": true,
|
|
12715
12846
|
"locationInModule": {
|
|
12716
12847
|
"filename": "lib/component.ts",
|
|
12717
|
-
"line":
|
|
12848
|
+
"line": 384
|
|
12718
12849
|
},
|
|
12719
12850
|
"name": "description",
|
|
12720
12851
|
"optional": true,
|
|
@@ -12740,7 +12871,7 @@
|
|
|
12740
12871
|
"kind": "interface",
|
|
12741
12872
|
"locationInModule": {
|
|
12742
12873
|
"filename": "lib/component.ts",
|
|
12743
|
-
"line":
|
|
12874
|
+
"line": 221
|
|
12744
12875
|
},
|
|
12745
12876
|
"name": "ComponentDocumentPhase",
|
|
12746
12877
|
"properties": [
|
|
@@ -12753,7 +12884,7 @@
|
|
|
12753
12884
|
"immutable": true,
|
|
12754
12885
|
"locationInModule": {
|
|
12755
12886
|
"filename": "lib/component.ts",
|
|
12756
|
-
"line":
|
|
12887
|
+
"line": 225
|
|
12757
12888
|
},
|
|
12758
12889
|
"name": "name",
|
|
12759
12890
|
"type": {
|
|
@@ -12769,7 +12900,7 @@
|
|
|
12769
12900
|
"immutable": true,
|
|
12770
12901
|
"locationInModule": {
|
|
12771
12902
|
"filename": "lib/component.ts",
|
|
12772
|
-
"line":
|
|
12903
|
+
"line": 230
|
|
12773
12904
|
},
|
|
12774
12905
|
"name": "steps",
|
|
12775
12906
|
"type": {
|
|
@@ -12799,7 +12930,7 @@
|
|
|
12799
12930
|
"kind": "interface",
|
|
12800
12931
|
"locationInModule": {
|
|
12801
12932
|
"filename": "lib/component.ts",
|
|
12802
|
-
"line":
|
|
12933
|
+
"line": 237
|
|
12803
12934
|
},
|
|
12804
12935
|
"name": "ComponentDocumentStep",
|
|
12805
12936
|
"properties": [
|
|
@@ -12812,7 +12943,7 @@
|
|
|
12812
12943
|
"immutable": true,
|
|
12813
12944
|
"locationInModule": {
|
|
12814
12945
|
"filename": "lib/component.ts",
|
|
12815
|
-
"line":
|
|
12946
|
+
"line": 246
|
|
12816
12947
|
},
|
|
12817
12948
|
"name": "action",
|
|
12818
12949
|
"type": {
|
|
@@ -12829,7 +12960,7 @@
|
|
|
12829
12960
|
"immutable": true,
|
|
12830
12961
|
"locationInModule": {
|
|
12831
12962
|
"filename": "lib/component.ts",
|
|
12832
|
-
"line":
|
|
12963
|
+
"line": 253
|
|
12833
12964
|
},
|
|
12834
12965
|
"name": "inputs",
|
|
12835
12966
|
"type": {
|
|
@@ -12845,7 +12976,7 @@
|
|
|
12845
12976
|
"immutable": true,
|
|
12846
12977
|
"locationInModule": {
|
|
12847
12978
|
"filename": "lib/component.ts",
|
|
12848
|
-
"line":
|
|
12979
|
+
"line": 241
|
|
12849
12980
|
},
|
|
12850
12981
|
"name": "name",
|
|
12851
12982
|
"type": {
|
|
@@ -12864,7 +12995,7 @@
|
|
|
12864
12995
|
"immutable": true,
|
|
12865
12996
|
"locationInModule": {
|
|
12866
12997
|
"filename": "lib/component.ts",
|
|
12867
|
-
"line":
|
|
12998
|
+
"line": 263
|
|
12868
12999
|
},
|
|
12869
13000
|
"name": "if",
|
|
12870
13001
|
"optional": true,
|
|
@@ -12882,7 +13013,7 @@
|
|
|
12882
13013
|
"immutable": true,
|
|
12883
13014
|
"locationInModule": {
|
|
12884
13015
|
"filename": "lib/component.ts",
|
|
12885
|
-
"line":
|
|
13016
|
+
"line": 270
|
|
12886
13017
|
},
|
|
12887
13018
|
"name": "loop",
|
|
12888
13019
|
"optional": true,
|
|
@@ -12900,7 +13031,7 @@
|
|
|
12900
13031
|
"immutable": true,
|
|
12901
13032
|
"locationInModule": {
|
|
12902
13033
|
"filename": "lib/component.ts",
|
|
12903
|
-
"line":
|
|
13034
|
+
"line": 284
|
|
12904
13035
|
},
|
|
12905
13036
|
"name": "onFailure",
|
|
12906
13037
|
"optional": true,
|
|
@@ -12918,7 +13049,7 @@
|
|
|
12918
13049
|
"immutable": true,
|
|
12919
13050
|
"locationInModule": {
|
|
12920
13051
|
"filename": "lib/component.ts",
|
|
12921
|
-
"line":
|
|
13052
|
+
"line": 277
|
|
12922
13053
|
},
|
|
12923
13054
|
"name": "timeout",
|
|
12924
13055
|
"optional": true,
|
|
@@ -12943,7 +13074,7 @@
|
|
|
12943
13074
|
"kind": "enum",
|
|
12944
13075
|
"locationInModule": {
|
|
12945
13076
|
"filename": "lib/component.ts",
|
|
12946
|
-
"line":
|
|
13077
|
+
"line": 547
|
|
12947
13078
|
},
|
|
12948
13079
|
"members": [
|
|
12949
13080
|
{
|
|
@@ -12981,7 +13112,7 @@
|
|
|
12981
13112
|
"kind": "enum",
|
|
12982
13113
|
"locationInModule": {
|
|
12983
13114
|
"filename": "lib/component.ts",
|
|
12984
|
-
"line":
|
|
13115
|
+
"line": 567
|
|
12985
13116
|
},
|
|
12986
13117
|
"members": [
|
|
12987
13118
|
{
|
|
@@ -13103,7 +13234,7 @@
|
|
|
13103
13234
|
"kind": "enum",
|
|
13104
13235
|
"locationInModule": {
|
|
13105
13236
|
"filename": "lib/component.ts",
|
|
13106
|
-
"line":
|
|
13237
|
+
"line": 577
|
|
13107
13238
|
},
|
|
13108
13239
|
"members": [
|
|
13109
13240
|
{
|
|
@@ -13347,7 +13478,7 @@
|
|
|
13347
13478
|
"kind": "enum",
|
|
13348
13479
|
"locationInModule": {
|
|
13349
13480
|
"filename": "lib/component.ts",
|
|
13350
|
-
"line":
|
|
13481
|
+
"line": 604
|
|
13351
13482
|
},
|
|
13352
13483
|
"members": [
|
|
13353
13484
|
{
|
|
@@ -13378,7 +13509,7 @@
|
|
|
13378
13509
|
},
|
|
13379
13510
|
"locationInModule": {
|
|
13380
13511
|
"filename": "lib/component.ts",
|
|
13381
|
-
"line":
|
|
13512
|
+
"line": 661
|
|
13382
13513
|
},
|
|
13383
13514
|
"parameters": [
|
|
13384
13515
|
{
|
|
@@ -13393,7 +13524,7 @@
|
|
|
13393
13524
|
"kind": "class",
|
|
13394
13525
|
"locationInModule": {
|
|
13395
13526
|
"filename": "lib/component.ts",
|
|
13396
|
-
"line":
|
|
13527
|
+
"line": 646
|
|
13397
13528
|
},
|
|
13398
13529
|
"methods": [
|
|
13399
13530
|
{
|
|
@@ -13403,7 +13534,7 @@
|
|
|
13403
13534
|
},
|
|
13404
13535
|
"locationInModule": {
|
|
13405
13536
|
"filename": "lib/component.ts",
|
|
13406
|
-
"line":
|
|
13537
|
+
"line": 652
|
|
13407
13538
|
},
|
|
13408
13539
|
"name": "fromObject",
|
|
13409
13540
|
"parameters": [
|
|
@@ -13440,7 +13571,7 @@
|
|
|
13440
13571
|
"immutable": true,
|
|
13441
13572
|
"locationInModule": {
|
|
13442
13573
|
"filename": "lib/component.ts",
|
|
13443
|
-
"line":
|
|
13574
|
+
"line": 659
|
|
13444
13575
|
},
|
|
13445
13576
|
"name": "ifCondition",
|
|
13446
13577
|
"type": {
|
|
@@ -13467,7 +13598,7 @@
|
|
|
13467
13598
|
},
|
|
13468
13599
|
"locationInModule": {
|
|
13469
13600
|
"filename": "lib/component.ts",
|
|
13470
|
-
"line":
|
|
13601
|
+
"line": 638
|
|
13471
13602
|
},
|
|
13472
13603
|
"parameters": [
|
|
13473
13604
|
{
|
|
@@ -13482,7 +13613,7 @@
|
|
|
13482
13613
|
"kind": "class",
|
|
13483
13614
|
"locationInModule": {
|
|
13484
13615
|
"filename": "lib/component.ts",
|
|
13485
|
-
"line":
|
|
13616
|
+
"line": 614
|
|
13486
13617
|
},
|
|
13487
13618
|
"methods": [
|
|
13488
13619
|
{
|
|
@@ -13492,7 +13623,7 @@
|
|
|
13492
13623
|
},
|
|
13493
13624
|
"locationInModule": {
|
|
13494
13625
|
"filename": "lib/component.ts",
|
|
13495
|
-
"line":
|
|
13626
|
+
"line": 629
|
|
13496
13627
|
},
|
|
13497
13628
|
"name": "fromList",
|
|
13498
13629
|
"parameters": [
|
|
@@ -13530,7 +13661,7 @@
|
|
|
13530
13661
|
},
|
|
13531
13662
|
"locationInModule": {
|
|
13532
13663
|
"filename": "lib/component.ts",
|
|
13533
|
-
"line":
|
|
13664
|
+
"line": 620
|
|
13534
13665
|
},
|
|
13535
13666
|
"name": "fromObject",
|
|
13536
13667
|
"parameters": [
|
|
@@ -13567,7 +13698,7 @@
|
|
|
13567
13698
|
"immutable": true,
|
|
13568
13699
|
"locationInModule": {
|
|
13569
13700
|
"filename": "lib/component.ts",
|
|
13570
|
-
"line":
|
|
13701
|
+
"line": 636
|
|
13571
13702
|
},
|
|
13572
13703
|
"name": "inputs",
|
|
13573
13704
|
"type": {
|
|
@@ -17679,7 +17810,7 @@
|
|
|
17679
17810
|
"see": "https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-pipelines.html",
|
|
17680
17811
|
"stability": "experimental",
|
|
17681
17812
|
"summary": "Represents an EC2 Image Builder Image Pipeline.",
|
|
17682
|
-
"example": "const workflowPipeline = new imagebuilder.ImagePipeline(this, 'WorkflowPipeline', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.
|
|
17813
|
+
"example": "const workflowPipeline = new imagebuilder.ImagePipeline(this, 'WorkflowPipeline', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.AmazonManagedWorkflow.buildImage(this, 'BuildWorkflow') },\n { workflow: imagebuilder.AmazonManagedWorkflow.testImage(this, 'TestWorkflow') }\n ]\n});",
|
|
17683
17814
|
"custom": {
|
|
17684
17815
|
"exampleMetadata": "infused"
|
|
17685
17816
|
}
|
|
@@ -18356,7 +18487,7 @@
|
|
|
18356
18487
|
"docs": {
|
|
18357
18488
|
"stability": "experimental",
|
|
18358
18489
|
"summary": "Properties for creating an Image Pipeline resource.",
|
|
18359
|
-
"example": "const workflowPipeline = new imagebuilder.ImagePipeline(this, 'WorkflowPipeline', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.
|
|
18490
|
+
"example": "const workflowPipeline = new imagebuilder.ImagePipeline(this, 'WorkflowPipeline', {\n recipe: exampleImageRecipe,\n workflows: [\n { workflow: imagebuilder.AmazonManagedWorkflow.buildImage(this, 'BuildWorkflow') },\n { workflow: imagebuilder.AmazonManagedWorkflow.testImage(this, 'TestWorkflow') }\n ]\n});",
|
|
18360
18491
|
"custom": {
|
|
18361
18492
|
"exampleMetadata": "infused"
|
|
18362
18493
|
}
|
|
@@ -22492,7 +22623,7 @@
|
|
|
22492
22623
|
},
|
|
22493
22624
|
"locationInModule": {
|
|
22494
22625
|
"filename": "lib/component.ts",
|
|
22495
|
-
"line":
|
|
22626
|
+
"line": 787
|
|
22496
22627
|
},
|
|
22497
22628
|
"parameters": [
|
|
22498
22629
|
{
|
|
@@ -22513,7 +22644,7 @@
|
|
|
22513
22644
|
"kind": "class",
|
|
22514
22645
|
"locationInModule": {
|
|
22515
22646
|
"filename": "lib/component.ts",
|
|
22516
|
-
"line":
|
|
22647
|
+
"line": 783
|
|
22517
22648
|
},
|
|
22518
22649
|
"methods": [
|
|
22519
22650
|
{
|
|
@@ -22523,7 +22654,7 @@
|
|
|
22523
22654
|
},
|
|
22524
22655
|
"locationInModule": {
|
|
22525
22656
|
"filename": "lib/component.ts",
|
|
22526
|
-
"line":
|
|
22657
|
+
"line": 806
|
|
22527
22658
|
},
|
|
22528
22659
|
"name": "grantPut",
|
|
22529
22660
|
"parameters": [
|
|
@@ -22550,7 +22681,7 @@
|
|
|
22550
22681
|
},
|
|
22551
22682
|
"locationInModule": {
|
|
22552
22683
|
"filename": "lib/component.ts",
|
|
22553
|
-
"line":
|
|
22684
|
+
"line": 815
|
|
22554
22685
|
},
|
|
22555
22686
|
"name": "grantRead",
|
|
22556
22687
|
"parameters": [
|
|
@@ -22569,6 +22700,23 @@
|
|
|
22569
22700
|
"fqn": "aws-cdk-lib.aws_iam.Grant"
|
|
22570
22701
|
}
|
|
22571
22702
|
}
|
|
22703
|
+
},
|
|
22704
|
+
{
|
|
22705
|
+
"docs": {
|
|
22706
|
+
"stability": "experimental",
|
|
22707
|
+
"summary": "The rendered component data text, for use in CloudFormation."
|
|
22708
|
+
},
|
|
22709
|
+
"locationInModule": {
|
|
22710
|
+
"filename": "lib/component.ts",
|
|
22711
|
+
"line": 797
|
|
22712
|
+
},
|
|
22713
|
+
"name": "render",
|
|
22714
|
+
"overrides": "@aws-cdk/aws-imagebuilder-alpha.ComponentData",
|
|
22715
|
+
"returns": {
|
|
22716
|
+
"type": {
|
|
22717
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig"
|
|
22718
|
+
}
|
|
22719
|
+
}
|
|
22572
22720
|
}
|
|
22573
22721
|
],
|
|
22574
22722
|
"name": "S3ComponentData",
|
|
@@ -22580,7 +22728,7 @@
|
|
|
22580
22728
|
"immutable": true,
|
|
22581
22729
|
"locationInModule": {
|
|
22582
22730
|
"filename": "lib/component.ts",
|
|
22583
|
-
"line":
|
|
22731
|
+
"line": 784
|
|
22584
22732
|
},
|
|
22585
22733
|
"name": "bucket",
|
|
22586
22734
|
"protected": true,
|
|
@@ -22588,22 +22736,6 @@
|
|
|
22588
22736
|
"fqn": "aws-cdk-lib.aws_s3.IBucket"
|
|
22589
22737
|
}
|
|
22590
22738
|
},
|
|
22591
|
-
{
|
|
22592
|
-
"docs": {
|
|
22593
|
-
"stability": "experimental",
|
|
22594
|
-
"summary": "Indicates that the provided component data is an S3 reference."
|
|
22595
|
-
},
|
|
22596
|
-
"immutable": true,
|
|
22597
|
-
"locationInModule": {
|
|
22598
|
-
"filename": "lib/component.ts",
|
|
22599
|
-
"line": 805
|
|
22600
|
-
},
|
|
22601
|
-
"name": "isS3Reference",
|
|
22602
|
-
"overrides": "@aws-cdk/aws-imagebuilder-alpha.ComponentData",
|
|
22603
|
-
"type": {
|
|
22604
|
-
"primitive": "boolean"
|
|
22605
|
-
}
|
|
22606
|
-
},
|
|
22607
22739
|
{
|
|
22608
22740
|
"docs": {
|
|
22609
22741
|
"stability": "experimental"
|
|
@@ -22611,7 +22743,7 @@
|
|
|
22611
22743
|
"immutable": true,
|
|
22612
22744
|
"locationInModule": {
|
|
22613
22745
|
"filename": "lib/component.ts",
|
|
22614
|
-
"line":
|
|
22746
|
+
"line": 785
|
|
22615
22747
|
},
|
|
22616
22748
|
"name": "key",
|
|
22617
22749
|
"protected": true,
|
|
@@ -22791,7 +22923,7 @@
|
|
|
22791
22923
|
},
|
|
22792
22924
|
"locationInModule": {
|
|
22793
22925
|
"filename": "lib/workflow.ts",
|
|
22794
|
-
"line":
|
|
22926
|
+
"line": 416
|
|
22795
22927
|
},
|
|
22796
22928
|
"parameters": [
|
|
22797
22929
|
{
|
|
@@ -22812,7 +22944,7 @@
|
|
|
22812
22944
|
"kind": "class",
|
|
22813
22945
|
"locationInModule": {
|
|
22814
22946
|
"filename": "lib/workflow.ts",
|
|
22815
|
-
"line":
|
|
22947
|
+
"line": 412
|
|
22816
22948
|
},
|
|
22817
22949
|
"methods": [
|
|
22818
22950
|
{
|
|
@@ -22822,7 +22954,7 @@
|
|
|
22822
22954
|
},
|
|
22823
22955
|
"locationInModule": {
|
|
22824
22956
|
"filename": "lib/workflow.ts",
|
|
22825
|
-
"line":
|
|
22957
|
+
"line": 435
|
|
22826
22958
|
},
|
|
22827
22959
|
"name": "grantPut",
|
|
22828
22960
|
"parameters": [
|
|
@@ -22849,7 +22981,7 @@
|
|
|
22849
22981
|
},
|
|
22850
22982
|
"locationInModule": {
|
|
22851
22983
|
"filename": "lib/workflow.ts",
|
|
22852
|
-
"line":
|
|
22984
|
+
"line": 444
|
|
22853
22985
|
},
|
|
22854
22986
|
"name": "grantRead",
|
|
22855
22987
|
"parameters": [
|
|
@@ -22876,7 +23008,7 @@
|
|
|
22876
23008
|
},
|
|
22877
23009
|
"locationInModule": {
|
|
22878
23010
|
"filename": "lib/workflow.ts",
|
|
22879
|
-
"line":
|
|
23011
|
+
"line": 426
|
|
22880
23012
|
},
|
|
22881
23013
|
"name": "render",
|
|
22882
23014
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.WorkflowData",
|
|
@@ -22896,7 +23028,7 @@
|
|
|
22896
23028
|
"immutable": true,
|
|
22897
23029
|
"locationInModule": {
|
|
22898
23030
|
"filename": "lib/workflow.ts",
|
|
22899
|
-
"line":
|
|
23031
|
+
"line": 413
|
|
22900
23032
|
},
|
|
22901
23033
|
"name": "bucket",
|
|
22902
23034
|
"protected": true,
|
|
@@ -22911,7 +23043,7 @@
|
|
|
22911
23043
|
"immutable": true,
|
|
22912
23044
|
"locationInModule": {
|
|
22913
23045
|
"filename": "lib/workflow.ts",
|
|
22914
|
-
"line":
|
|
23046
|
+
"line": 414
|
|
22915
23047
|
},
|
|
22916
23048
|
"name": "key",
|
|
22917
23049
|
"protected": true,
|
|
@@ -23094,7 +23226,7 @@
|
|
|
23094
23226
|
},
|
|
23095
23227
|
"locationInModule": {
|
|
23096
23228
|
"filename": "lib/workflow.ts",
|
|
23097
|
-
"line":
|
|
23229
|
+
"line": 731
|
|
23098
23230
|
},
|
|
23099
23231
|
"parameters": [
|
|
23100
23232
|
{
|
|
@@ -23123,7 +23255,7 @@
|
|
|
23123
23255
|
"kind": "class",
|
|
23124
23256
|
"locationInModule": {
|
|
23125
23257
|
"filename": "lib/workflow.ts",
|
|
23126
|
-
"line":
|
|
23258
|
+
"line": 613
|
|
23127
23259
|
},
|
|
23128
23260
|
"methods": [
|
|
23129
23261
|
{
|
|
@@ -23133,7 +23265,7 @@
|
|
|
23133
23265
|
},
|
|
23134
23266
|
"locationInModule": {
|
|
23135
23267
|
"filename": "lib/workflow.ts",
|
|
23136
|
-
"line":
|
|
23268
|
+
"line": 621
|
|
23137
23269
|
},
|
|
23138
23270
|
"name": "fromWorkflowArn",
|
|
23139
23271
|
"parameters": [
|
|
@@ -23171,7 +23303,7 @@
|
|
|
23171
23303
|
},
|
|
23172
23304
|
"locationInModule": {
|
|
23173
23305
|
"filename": "lib/workflow.ts",
|
|
23174
|
-
"line":
|
|
23306
|
+
"line": 630
|
|
23175
23307
|
},
|
|
23176
23308
|
"name": "fromWorkflowAttributes",
|
|
23177
23309
|
"parameters": [
|
|
@@ -23208,7 +23340,7 @@
|
|
|
23208
23340
|
},
|
|
23209
23341
|
"locationInModule": {
|
|
23210
23342
|
"filename": "lib/workflow.ts",
|
|
23211
|
-
"line":
|
|
23343
|
+
"line": 707
|
|
23212
23344
|
},
|
|
23213
23345
|
"name": "isWorkflow",
|
|
23214
23346
|
"parameters": [
|
|
@@ -23233,7 +23365,7 @@
|
|
|
23233
23365
|
},
|
|
23234
23366
|
"locationInModule": {
|
|
23235
23367
|
"filename": "lib/workflow.ts",
|
|
23236
|
-
"line":
|
|
23368
|
+
"line": 589
|
|
23237
23369
|
},
|
|
23238
23370
|
"name": "grant",
|
|
23239
23371
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23272,7 +23404,7 @@
|
|
|
23272
23404
|
},
|
|
23273
23405
|
"locationInModule": {
|
|
23274
23406
|
"filename": "lib/workflow.ts",
|
|
23275
|
-
"line":
|
|
23407
|
+
"line": 603
|
|
23276
23408
|
},
|
|
23277
23409
|
"name": "grantRead",
|
|
23278
23410
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23305,7 +23437,7 @@
|
|
|
23305
23437
|
"immutable": true,
|
|
23306
23438
|
"locationInModule": {
|
|
23307
23439
|
"filename": "lib/workflow.ts",
|
|
23308
|
-
"line":
|
|
23440
|
+
"line": 616
|
|
23309
23441
|
},
|
|
23310
23442
|
"name": "PROPERTY_INJECTION_ID",
|
|
23311
23443
|
"static": true,
|
|
@@ -23321,7 +23453,7 @@
|
|
|
23321
23453
|
"immutable": true,
|
|
23322
23454
|
"locationInModule": {
|
|
23323
23455
|
"filename": "lib/workflow.ts",
|
|
23324
|
-
"line":
|
|
23456
|
+
"line": 714
|
|
23325
23457
|
},
|
|
23326
23458
|
"name": "workflowArn",
|
|
23327
23459
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23337,7 +23469,7 @@
|
|
|
23337
23469
|
"immutable": true,
|
|
23338
23470
|
"locationInModule": {
|
|
23339
23471
|
"filename": "lib/workflow.ts",
|
|
23340
|
-
"line":
|
|
23472
|
+
"line": 719
|
|
23341
23473
|
},
|
|
23342
23474
|
"name": "workflowName",
|
|
23343
23475
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23353,7 +23485,7 @@
|
|
|
23353
23485
|
"immutable": true,
|
|
23354
23486
|
"locationInModule": {
|
|
23355
23487
|
"filename": "lib/workflow.ts",
|
|
23356
|
-
"line":
|
|
23488
|
+
"line": 724
|
|
23357
23489
|
},
|
|
23358
23490
|
"name": "workflowType",
|
|
23359
23491
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23369,7 +23501,7 @@
|
|
|
23369
23501
|
"immutable": true,
|
|
23370
23502
|
"locationInModule": {
|
|
23371
23503
|
"filename": "lib/workflow.ts",
|
|
23372
|
-
"line":
|
|
23504
|
+
"line": 729
|
|
23373
23505
|
},
|
|
23374
23506
|
"name": "workflowVersion",
|
|
23375
23507
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23394,7 +23526,7 @@
|
|
|
23394
23526
|
"kind": "enum",
|
|
23395
23527
|
"locationInModule": {
|
|
23396
23528
|
"filename": "lib/workflow.ts",
|
|
23397
|
-
"line":
|
|
23529
|
+
"line": 165
|
|
23398
23530
|
},
|
|
23399
23531
|
"members": [
|
|
23400
23532
|
{
|
|
@@ -23629,7 +23761,7 @@
|
|
|
23629
23761
|
"kind": "interface",
|
|
23630
23762
|
"locationInModule": {
|
|
23631
23763
|
"filename": "lib/workflow.ts",
|
|
23632
|
-
"line":
|
|
23764
|
+
"line": 530
|
|
23633
23765
|
},
|
|
23634
23766
|
"name": "WorkflowConfiguration",
|
|
23635
23767
|
"properties": [
|
|
@@ -23642,7 +23774,7 @@
|
|
|
23642
23774
|
"immutable": true,
|
|
23643
23775
|
"locationInModule": {
|
|
23644
23776
|
"filename": "lib/workflow.ts",
|
|
23645
|
-
"line":
|
|
23777
|
+
"line": 534
|
|
23646
23778
|
},
|
|
23647
23779
|
"name": "workflow",
|
|
23648
23780
|
"type": {
|
|
@@ -23659,7 +23791,7 @@
|
|
|
23659
23791
|
"immutable": true,
|
|
23660
23792
|
"locationInModule": {
|
|
23661
23793
|
"filename": "lib/workflow.ts",
|
|
23662
|
-
"line":
|
|
23794
|
+
"line": 541
|
|
23663
23795
|
},
|
|
23664
23796
|
"name": "onFailure",
|
|
23665
23797
|
"optional": true,
|
|
@@ -23678,7 +23810,7 @@
|
|
|
23678
23810
|
"immutable": true,
|
|
23679
23811
|
"locationInModule": {
|
|
23680
23812
|
"filename": "lib/workflow.ts",
|
|
23681
|
-
"line":
|
|
23813
|
+
"line": 549
|
|
23682
23814
|
},
|
|
23683
23815
|
"name": "parallelGroup",
|
|
23684
23816
|
"optional": true,
|
|
@@ -23696,7 +23828,7 @@
|
|
|
23696
23828
|
"immutable": true,
|
|
23697
23829
|
"locationInModule": {
|
|
23698
23830
|
"filename": "lib/workflow.ts",
|
|
23699
|
-
"line":
|
|
23831
|
+
"line": 556
|
|
23700
23832
|
},
|
|
23701
23833
|
"name": "parameters",
|
|
23702
23834
|
"optional": true,
|
|
@@ -23732,7 +23864,7 @@
|
|
|
23732
23864
|
"kind": "class",
|
|
23733
23865
|
"locationInModule": {
|
|
23734
23866
|
"filename": "lib/workflow.ts",
|
|
23735
|
-
"line":
|
|
23867
|
+
"line": 353
|
|
23736
23868
|
},
|
|
23737
23869
|
"methods": [
|
|
23738
23870
|
{
|
|
@@ -23742,7 +23874,7 @@
|
|
|
23742
23874
|
},
|
|
23743
23875
|
"locationInModule": {
|
|
23744
23876
|
"filename": "lib/workflow.ts",
|
|
23745
|
-
"line":
|
|
23877
|
+
"line": 362
|
|
23746
23878
|
},
|
|
23747
23879
|
"name": "fromAsset",
|
|
23748
23880
|
"parameters": [
|
|
@@ -23798,7 +23930,7 @@
|
|
|
23798
23930
|
},
|
|
23799
23931
|
"locationInModule": {
|
|
23800
23932
|
"filename": "lib/workflow.ts",
|
|
23801
|
-
"line":
|
|
23933
|
+
"line": 397
|
|
23802
23934
|
},
|
|
23803
23935
|
"name": "fromInline",
|
|
23804
23936
|
"parameters": [
|
|
@@ -23826,7 +23958,7 @@
|
|
|
23826
23958
|
},
|
|
23827
23959
|
"locationInModule": {
|
|
23828
23960
|
"filename": "lib/workflow.ts",
|
|
23829
|
-
"line":
|
|
23961
|
+
"line": 387
|
|
23830
23962
|
},
|
|
23831
23963
|
"name": "fromJsonObject",
|
|
23832
23964
|
"parameters": [
|
|
@@ -23859,7 +23991,7 @@
|
|
|
23859
23991
|
},
|
|
23860
23992
|
"locationInModule": {
|
|
23861
23993
|
"filename": "lib/workflow.ts",
|
|
23862
|
-
"line":
|
|
23994
|
+
"line": 378
|
|
23863
23995
|
},
|
|
23864
23996
|
"name": "fromS3",
|
|
23865
23997
|
"parameters": [
|
|
@@ -23898,7 +24030,7 @@
|
|
|
23898
24030
|
},
|
|
23899
24031
|
"locationInModule": {
|
|
23900
24032
|
"filename": "lib/workflow.ts",
|
|
23901
|
-
"line":
|
|
24033
|
+
"line": 406
|
|
23902
24034
|
},
|
|
23903
24035
|
"name": "render",
|
|
23904
24036
|
"returns": {
|
|
@@ -23927,7 +24059,7 @@
|
|
|
23927
24059
|
"kind": "interface",
|
|
23928
24060
|
"locationInModule": {
|
|
23929
24061
|
"filename": "lib/workflow.ts",
|
|
23930
|
-
"line":
|
|
24062
|
+
"line": 334
|
|
23931
24063
|
},
|
|
23932
24064
|
"name": "WorkflowDataConfig",
|
|
23933
24065
|
"properties": [
|
|
@@ -23941,7 +24073,7 @@
|
|
|
23941
24073
|
"immutable": true,
|
|
23942
24074
|
"locationInModule": {
|
|
23943
24075
|
"filename": "lib/workflow.ts",
|
|
23944
|
-
"line":
|
|
24076
|
+
"line": 340
|
|
23945
24077
|
},
|
|
23946
24078
|
"name": "data",
|
|
23947
24079
|
"optional": true,
|
|
@@ -23959,7 +24091,7 @@
|
|
|
23959
24091
|
"immutable": true,
|
|
23960
24092
|
"locationInModule": {
|
|
23961
24093
|
"filename": "lib/workflow.ts",
|
|
23962
|
-
"line":
|
|
24094
|
+
"line": 347
|
|
23963
24095
|
},
|
|
23964
24096
|
"name": "uri",
|
|
23965
24097
|
"optional": true,
|
|
@@ -23984,7 +24116,7 @@
|
|
|
23984
24116
|
"kind": "enum",
|
|
23985
24117
|
"locationInModule": {
|
|
23986
24118
|
"filename": "lib/workflow.ts",
|
|
23987
|
-
"line":
|
|
24119
|
+
"line": 262
|
|
23988
24120
|
},
|
|
23989
24121
|
"members": [
|
|
23990
24122
|
{
|
|
@@ -24015,7 +24147,7 @@
|
|
|
24015
24147
|
"kind": "enum",
|
|
24016
24148
|
"locationInModule": {
|
|
24017
24149
|
"filename": "lib/workflow.ts",
|
|
24018
|
-
"line":
|
|
24150
|
+
"line": 277
|
|
24019
24151
|
},
|
|
24020
24152
|
"members": [
|
|
24021
24153
|
{
|
|
@@ -24067,7 +24199,7 @@
|
|
|
24067
24199
|
},
|
|
24068
24200
|
"locationInModule": {
|
|
24069
24201
|
"filename": "lib/workflow.ts",
|
|
24070
|
-
"line":
|
|
24202
|
+
"line": 522
|
|
24071
24203
|
},
|
|
24072
24204
|
"parameters": [
|
|
24073
24205
|
{
|
|
@@ -24087,7 +24219,7 @@
|
|
|
24087
24219
|
"kind": "class",
|
|
24088
24220
|
"locationInModule": {
|
|
24089
24221
|
"filename": "lib/workflow.ts",
|
|
24090
|
-
"line":
|
|
24222
|
+
"line": 481
|
|
24091
24223
|
},
|
|
24092
24224
|
"methods": [
|
|
24093
24225
|
{
|
|
@@ -24097,7 +24229,7 @@
|
|
|
24097
24229
|
},
|
|
24098
24230
|
"locationInModule": {
|
|
24099
24231
|
"filename": "lib/workflow.ts",
|
|
24100
|
-
"line":
|
|
24232
|
+
"line": 487
|
|
24101
24233
|
},
|
|
24102
24234
|
"name": "fromBoolean",
|
|
24103
24235
|
"parameters": [
|
|
@@ -24125,7 +24257,7 @@
|
|
|
24125
24257
|
},
|
|
24126
24258
|
"locationInModule": {
|
|
24127
24259
|
"filename": "lib/workflow.ts",
|
|
24128
|
-
"line":
|
|
24260
|
+
"line": 496
|
|
24129
24261
|
},
|
|
24130
24262
|
"name": "fromInteger",
|
|
24131
24263
|
"parameters": [
|
|
@@ -24153,7 +24285,7 @@
|
|
|
24153
24285
|
},
|
|
24154
24286
|
"locationInModule": {
|
|
24155
24287
|
"filename": "lib/workflow.ts",
|
|
24156
|
-
"line":
|
|
24288
|
+
"line": 504
|
|
24157
24289
|
},
|
|
24158
24290
|
"name": "fromString",
|
|
24159
24291
|
"parameters": [
|
|
@@ -24181,7 +24313,7 @@
|
|
|
24181
24313
|
},
|
|
24182
24314
|
"locationInModule": {
|
|
24183
24315
|
"filename": "lib/workflow.ts",
|
|
24184
|
-
"line":
|
|
24316
|
+
"line": 513
|
|
24185
24317
|
},
|
|
24186
24318
|
"name": "fromStringList",
|
|
24187
24319
|
"parameters": [
|
|
@@ -24218,7 +24350,7 @@
|
|
|
24218
24350
|
"immutable": true,
|
|
24219
24351
|
"locationInModule": {
|
|
24220
24352
|
"filename": "lib/workflow.ts",
|
|
24221
|
-
"line":
|
|
24353
|
+
"line": 520
|
|
24222
24354
|
},
|
|
24223
24355
|
"name": "value",
|
|
24224
24356
|
"type": {
|
|
@@ -24415,7 +24547,7 @@
|
|
|
24415
24547
|
"kind": "enum",
|
|
24416
24548
|
"locationInModule": {
|
|
24417
24549
|
"filename": "lib/workflow.ts",
|
|
24418
|
-
"line":
|
|
24550
|
+
"line": 302
|
|
24419
24551
|
},
|
|
24420
24552
|
"members": [
|
|
24421
24553
|
{
|
|
@@ -24443,7 +24575,7 @@
|
|
|
24443
24575
|
"kind": "enum",
|
|
24444
24576
|
"locationInModule": {
|
|
24445
24577
|
"filename": "lib/workflow.ts",
|
|
24446
|
-
"line":
|
|
24578
|
+
"line": 312
|
|
24447
24579
|
},
|
|
24448
24580
|
"members": [
|
|
24449
24581
|
{
|
|
@@ -24472,6 +24604,6 @@
|
|
|
24472
24604
|
"symbolId": "lib/workflow:WorkflowType"
|
|
24473
24605
|
}
|
|
24474
24606
|
},
|
|
24475
|
-
"version": "2.
|
|
24607
|
+
"version": "2.234.0-alpha.0",
|
|
24476
24608
|
"fingerprint": "**********"
|
|
24477
24609
|
}
|