@aws-cdk/aws-imagebuilder-alpha 2.232.2-alpha.0 → 2.233.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 +1130 -1027
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +33 -29
- 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.233.0",
|
|
15
15
|
"constructs": "^10.0.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencyClosure": {
|
|
@@ -8444,7 +8444,7 @@
|
|
|
8444
8444
|
"stability": "experimental"
|
|
8445
8445
|
},
|
|
8446
8446
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8447
|
-
"jsiiVersion": "5.9.
|
|
8447
|
+
"jsiiVersion": "5.9.18 (build 9d58cab)",
|
|
8448
8448
|
"keywords": [
|
|
8449
8449
|
"aws",
|
|
8450
8450
|
"cdk",
|
|
@@ -8465,7 +8465,7 @@
|
|
|
8465
8465
|
},
|
|
8466
8466
|
"name": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8467
8467
|
"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"
|
|
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.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
8469
|
},
|
|
8470
8470
|
"repository": {
|
|
8471
8471
|
"directory": "packages/@aws-cdk/aws-imagebuilder-alpha",
|
|
@@ -8503,17 +8503,18 @@
|
|
|
8503
8503
|
}
|
|
8504
8504
|
},
|
|
8505
8505
|
"types": {
|
|
8506
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
8506
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent": {
|
|
8507
|
+
"abstract": true,
|
|
8507
8508
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8508
8509
|
"docs": {
|
|
8509
8510
|
"stability": "experimental",
|
|
8510
|
-
"summary": "Helper class for working with Amazon-managed
|
|
8511
|
-
"example": "
|
|
8511
|
+
"summary": "Helper class for working with Amazon-managed components.",
|
|
8512
|
+
"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
8513
|
"custom": {
|
|
8513
8514
|
"exampleMetadata": "infused"
|
|
8514
8515
|
}
|
|
8515
8516
|
},
|
|
8516
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8517
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent",
|
|
8517
8518
|
"initializer": {
|
|
8518
8519
|
"docs": {
|
|
8519
8520
|
"stability": "experimental"
|
|
@@ -8521,21 +8522,20 @@
|
|
|
8521
8522
|
},
|
|
8522
8523
|
"kind": "class",
|
|
8523
8524
|
"locationInModule": {
|
|
8524
|
-
"filename": "lib/amazon-managed-
|
|
8525
|
-
"line":
|
|
8525
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8526
|
+
"line": 49
|
|
8526
8527
|
},
|
|
8527
8528
|
"methods": [
|
|
8528
8529
|
{
|
|
8529
8530
|
"docs": {
|
|
8530
|
-
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
8531
8531
|
"stability": "experimental",
|
|
8532
|
-
"summary": "Imports the
|
|
8532
|
+
"summary": "Imports the AWS CLI v2 Amazon-managed component."
|
|
8533
8533
|
},
|
|
8534
8534
|
"locationInModule": {
|
|
8535
|
-
"filename": "lib/amazon-managed-
|
|
8536
|
-
"line":
|
|
8535
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8536
|
+
"line": 57
|
|
8537
8537
|
},
|
|
8538
|
-
"name": "
|
|
8538
|
+
"name": "awsCliV2",
|
|
8539
8539
|
"parameters": [
|
|
8540
8540
|
{
|
|
8541
8541
|
"docs": {
|
|
@@ -8557,32 +8557,31 @@
|
|
|
8557
8557
|
},
|
|
8558
8558
|
{
|
|
8559
8559
|
"docs": {
|
|
8560
|
-
"summary": "The Amazon-managed
|
|
8560
|
+
"summary": "The Amazon-managed component options."
|
|
8561
8561
|
},
|
|
8562
8562
|
"name": "opts",
|
|
8563
8563
|
"type": {
|
|
8564
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8564
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8565
8565
|
}
|
|
8566
8566
|
}
|
|
8567
8567
|
],
|
|
8568
8568
|
"returns": {
|
|
8569
8569
|
"type": {
|
|
8570
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8570
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8571
8571
|
}
|
|
8572
8572
|
},
|
|
8573
8573
|
"static": true
|
|
8574
8574
|
},
|
|
8575
8575
|
{
|
|
8576
8576
|
"docs": {
|
|
8577
|
-
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
8578
8577
|
"stability": "experimental",
|
|
8579
|
-
"summary": "Imports
|
|
8578
|
+
"summary": "Imports an Amazon-managed component from its attributes."
|
|
8580
8579
|
},
|
|
8581
8580
|
"locationInModule": {
|
|
8582
|
-
"filename": "lib/amazon-managed-
|
|
8583
|
-
"line":
|
|
8581
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8582
|
+
"line": 125
|
|
8584
8583
|
},
|
|
8585
|
-
"name": "
|
|
8584
|
+
"name": "fromAmazonManagedComponentAttributes",
|
|
8586
8585
|
"parameters": [
|
|
8587
8586
|
{
|
|
8588
8587
|
"docs": {
|
|
@@ -8604,17 +8603,17 @@
|
|
|
8604
8603
|
},
|
|
8605
8604
|
{
|
|
8606
8605
|
"docs": {
|
|
8607
|
-
"summary": "The Amazon-managed
|
|
8606
|
+
"summary": "The Amazon-managed component attributes."
|
|
8608
8607
|
},
|
|
8609
|
-
"name": "
|
|
8608
|
+
"name": "attrs",
|
|
8610
8609
|
"type": {
|
|
8611
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8610
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentAttributes"
|
|
8612
8611
|
}
|
|
8613
8612
|
}
|
|
8614
8613
|
],
|
|
8615
8614
|
"returns": {
|
|
8616
8615
|
"type": {
|
|
8617
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8616
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8618
8617
|
}
|
|
8619
8618
|
},
|
|
8620
8619
|
"static": true
|
|
@@ -8622,13 +8621,13 @@
|
|
|
8622
8621
|
{
|
|
8623
8622
|
"docs": {
|
|
8624
8623
|
"stability": "experimental",
|
|
8625
|
-
"summary": "Imports an Amazon-managed
|
|
8624
|
+
"summary": "Imports an Amazon-managed component from its name."
|
|
8626
8625
|
},
|
|
8627
8626
|
"locationInModule": {
|
|
8628
|
-
"filename": "lib/amazon-managed-
|
|
8629
|
-
"line":
|
|
8627
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8628
|
+
"line": 148
|
|
8630
8629
|
},
|
|
8631
|
-
"name": "
|
|
8630
|
+
"name": "fromAmazonManagedComponentName",
|
|
8632
8631
|
"parameters": [
|
|
8633
8632
|
{
|
|
8634
8633
|
"docs": {
|
|
@@ -8650,17 +8649,17 @@
|
|
|
8650
8649
|
},
|
|
8651
8650
|
{
|
|
8652
8651
|
"docs": {
|
|
8653
|
-
"summary": "- The Amazon-managed
|
|
8652
|
+
"summary": "- The name of the Amazon-managed component."
|
|
8654
8653
|
},
|
|
8655
|
-
"name": "
|
|
8654
|
+
"name": "amazonManagedComponentName",
|
|
8656
8655
|
"type": {
|
|
8657
|
-
"
|
|
8656
|
+
"primitive": "string"
|
|
8658
8657
|
}
|
|
8659
8658
|
}
|
|
8660
8659
|
],
|
|
8661
8660
|
"returns": {
|
|
8662
8661
|
"type": {
|
|
8663
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8662
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8664
8663
|
}
|
|
8665
8664
|
},
|
|
8666
8665
|
"static": true
|
|
@@ -8668,13 +8667,13 @@
|
|
|
8668
8667
|
{
|
|
8669
8668
|
"docs": {
|
|
8670
8669
|
"stability": "experimental",
|
|
8671
|
-
"summary": "Imports
|
|
8670
|
+
"summary": "Imports the hello world Amazon-managed component."
|
|
8672
8671
|
},
|
|
8673
8672
|
"locationInModule": {
|
|
8674
|
-
"filename": "lib/amazon-managed-
|
|
8675
|
-
"line":
|
|
8673
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8674
|
+
"line": 68
|
|
8676
8675
|
},
|
|
8677
|
-
"name": "
|
|
8676
|
+
"name": "helloWorld",
|
|
8678
8677
|
"parameters": [
|
|
8679
8678
|
{
|
|
8680
8679
|
"docs": {
|
|
@@ -8696,32 +8695,31 @@
|
|
|
8696
8695
|
},
|
|
8697
8696
|
{
|
|
8698
8697
|
"docs": {
|
|
8699
|
-
"summary": "
|
|
8698
|
+
"summary": "The Amazon-managed component options."
|
|
8700
8699
|
},
|
|
8701
|
-
"name": "
|
|
8700
|
+
"name": "opts",
|
|
8702
8701
|
"type": {
|
|
8703
|
-
"
|
|
8702
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8704
8703
|
}
|
|
8705
8704
|
}
|
|
8706
8705
|
],
|
|
8707
8706
|
"returns": {
|
|
8708
8707
|
"type": {
|
|
8709
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8708
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8710
8709
|
}
|
|
8711
8710
|
},
|
|
8712
8711
|
"static": true
|
|
8713
8712
|
},
|
|
8714
8713
|
{
|
|
8715
8714
|
"docs": {
|
|
8716
|
-
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
8717
8715
|
"stability": "experimental",
|
|
8718
|
-
"summary": "Imports the
|
|
8716
|
+
"summary": "Imports the Python 3 Amazon-managed component."
|
|
8719
8717
|
},
|
|
8720
8718
|
"locationInModule": {
|
|
8721
|
-
"filename": "lib/amazon-managed-
|
|
8722
|
-
"line":
|
|
8719
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8720
|
+
"line": 79
|
|
8723
8721
|
},
|
|
8724
|
-
"name": "
|
|
8722
|
+
"name": "python3",
|
|
8725
8723
|
"parameters": [
|
|
8726
8724
|
{
|
|
8727
8725
|
"docs": {
|
|
@@ -8743,32 +8741,31 @@
|
|
|
8743
8741
|
},
|
|
8744
8742
|
{
|
|
8745
8743
|
"docs": {
|
|
8746
|
-
"summary": "The Amazon-managed
|
|
8744
|
+
"summary": "The Amazon-managed component options."
|
|
8747
8745
|
},
|
|
8748
8746
|
"name": "opts",
|
|
8749
8747
|
"type": {
|
|
8750
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8748
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8751
8749
|
}
|
|
8752
8750
|
}
|
|
8753
8751
|
],
|
|
8754
8752
|
"returns": {
|
|
8755
8753
|
"type": {
|
|
8756
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8754
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8757
8755
|
}
|
|
8758
8756
|
},
|
|
8759
8757
|
"static": true
|
|
8760
8758
|
},
|
|
8761
8759
|
{
|
|
8762
8760
|
"docs": {
|
|
8763
|
-
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
8764
8761
|
"stability": "experimental",
|
|
8765
|
-
"summary": "Imports the
|
|
8762
|
+
"summary": "Imports the reboot Amazon-managed component."
|
|
8766
8763
|
},
|
|
8767
8764
|
"locationInModule": {
|
|
8768
|
-
"filename": "lib/amazon-managed-
|
|
8769
|
-
"line":
|
|
8765
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8766
|
+
"line": 90
|
|
8770
8767
|
},
|
|
8771
|
-
"name": "
|
|
8768
|
+
"name": "reboot",
|
|
8772
8769
|
"parameters": [
|
|
8773
8770
|
{
|
|
8774
8771
|
"docs": {
|
|
@@ -8790,32 +8787,32 @@
|
|
|
8790
8787
|
},
|
|
8791
8788
|
{
|
|
8792
8789
|
"docs": {
|
|
8793
|
-
"summary": "The Amazon-managed
|
|
8790
|
+
"summary": "The Amazon-managed component options."
|
|
8794
8791
|
},
|
|
8795
8792
|
"name": "opts",
|
|
8796
8793
|
"type": {
|
|
8797
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8794
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8798
8795
|
}
|
|
8799
8796
|
}
|
|
8800
8797
|
],
|
|
8801
8798
|
"returns": {
|
|
8802
8799
|
"type": {
|
|
8803
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8800
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8804
8801
|
}
|
|
8805
8802
|
},
|
|
8806
8803
|
"static": true
|
|
8807
8804
|
},
|
|
8808
8805
|
{
|
|
8809
8806
|
"docs": {
|
|
8810
|
-
"see": "https://aws.amazon.com/
|
|
8807
|
+
"see": "https://docs.aws.amazon.com/imagebuilder/latest/userguide/ib-stig.html",
|
|
8811
8808
|
"stability": "experimental",
|
|
8812
|
-
"summary": "Imports the
|
|
8809
|
+
"summary": "Imports the STIG hardening Amazon-managed component."
|
|
8813
8810
|
},
|
|
8814
8811
|
"locationInModule": {
|
|
8815
|
-
"filename": "lib/amazon-managed-
|
|
8816
|
-
"line":
|
|
8812
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8813
|
+
"line": 103
|
|
8817
8814
|
},
|
|
8818
|
-
"name": "
|
|
8815
|
+
"name": "stigBuild",
|
|
8819
8816
|
"parameters": [
|
|
8820
8817
|
{
|
|
8821
8818
|
"docs": {
|
|
@@ -8837,32 +8834,31 @@
|
|
|
8837
8834
|
},
|
|
8838
8835
|
{
|
|
8839
8836
|
"docs": {
|
|
8840
|
-
"summary": "The Amazon-managed
|
|
8837
|
+
"summary": "The Amazon-managed component options."
|
|
8841
8838
|
},
|
|
8842
8839
|
"name": "opts",
|
|
8843
8840
|
"type": {
|
|
8844
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8841
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8845
8842
|
}
|
|
8846
8843
|
}
|
|
8847
8844
|
],
|
|
8848
8845
|
"returns": {
|
|
8849
8846
|
"type": {
|
|
8850
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8847
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8851
8848
|
}
|
|
8852
8849
|
},
|
|
8853
8850
|
"static": true
|
|
8854
8851
|
},
|
|
8855
8852
|
{
|
|
8856
8853
|
"docs": {
|
|
8857
|
-
"see": "https://aws.amazon.com/linux/commercial-linux/faqs/",
|
|
8858
8854
|
"stability": "experimental",
|
|
8859
|
-
"summary": "Imports the
|
|
8855
|
+
"summary": "Imports the OS update Amazon-managed component."
|
|
8860
8856
|
},
|
|
8861
8857
|
"locationInModule": {
|
|
8862
|
-
"filename": "lib/amazon-managed-
|
|
8863
|
-
"line":
|
|
8858
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8859
|
+
"line": 114
|
|
8864
8860
|
},
|
|
8865
|
-
"name": "
|
|
8861
|
+
"name": "updateOs",
|
|
8866
8862
|
"parameters": [
|
|
8867
8863
|
{
|
|
8868
8864
|
"docs": {
|
|
@@ -8884,32 +8880,170 @@
|
|
|
8884
8880
|
},
|
|
8885
8881
|
{
|
|
8886
8882
|
"docs": {
|
|
8887
|
-
"summary": "The Amazon-managed
|
|
8883
|
+
"summary": "The Amazon-managed component attributes."
|
|
8888
8884
|
},
|
|
8889
8885
|
"name": "opts",
|
|
8890
8886
|
"type": {
|
|
8891
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8887
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions"
|
|
8892
8888
|
}
|
|
8893
8889
|
}
|
|
8894
8890
|
],
|
|
8895
8891
|
"returns": {
|
|
8896
8892
|
"type": {
|
|
8897
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
8893
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IComponent"
|
|
8898
8894
|
}
|
|
8899
8895
|
},
|
|
8900
8896
|
"static": true
|
|
8897
|
+
}
|
|
8898
|
+
],
|
|
8899
|
+
"name": "AmazonManagedComponent",
|
|
8900
|
+
"symbolId": "lib/amazon-managed-component:AmazonManagedComponent"
|
|
8901
|
+
},
|
|
8902
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentAttributes": {
|
|
8903
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8904
|
+
"datatype": true,
|
|
8905
|
+
"docs": {
|
|
8906
|
+
"stability": "experimental",
|
|
8907
|
+
"summary": "Properties for an EC2 Image Builder Amazon-managed component.",
|
|
8908
|
+
"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};",
|
|
8909
|
+
"custom": {
|
|
8910
|
+
"exampleMetadata": "fixture=_generated"
|
|
8911
|
+
}
|
|
8912
|
+
},
|
|
8913
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentAttributes",
|
|
8914
|
+
"kind": "interface",
|
|
8915
|
+
"locationInModule": {
|
|
8916
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8917
|
+
"line": 10
|
|
8918
|
+
},
|
|
8919
|
+
"name": "AmazonManagedComponentAttributes",
|
|
8920
|
+
"properties": [
|
|
8921
|
+
{
|
|
8922
|
+
"abstract": true,
|
|
8923
|
+
"docs": {
|
|
8924
|
+
"stability": "experimental",
|
|
8925
|
+
"summary": "The name of the Amazon-managed component."
|
|
8926
|
+
},
|
|
8927
|
+
"immutable": true,
|
|
8928
|
+
"locationInModule": {
|
|
8929
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8930
|
+
"line": 14
|
|
8931
|
+
},
|
|
8932
|
+
"name": "componentName",
|
|
8933
|
+
"type": {
|
|
8934
|
+
"primitive": "string"
|
|
8935
|
+
}
|
|
8901
8936
|
},
|
|
8902
8937
|
{
|
|
8938
|
+
"abstract": true,
|
|
8903
8939
|
"docs": {
|
|
8904
|
-
"
|
|
8940
|
+
"default": "- the latest version of the component, x.x.x",
|
|
8905
8941
|
"stability": "experimental",
|
|
8906
|
-
"summary": "
|
|
8942
|
+
"summary": "The version of the Amazon-managed component."
|
|
8943
|
+
},
|
|
8944
|
+
"immutable": true,
|
|
8945
|
+
"locationInModule": {
|
|
8946
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8947
|
+
"line": 21
|
|
8948
|
+
},
|
|
8949
|
+
"name": "componentVersion",
|
|
8950
|
+
"optional": true,
|
|
8951
|
+
"type": {
|
|
8952
|
+
"primitive": "string"
|
|
8953
|
+
}
|
|
8954
|
+
}
|
|
8955
|
+
],
|
|
8956
|
+
"symbolId": "lib/amazon-managed-component:AmazonManagedComponentAttributes"
|
|
8957
|
+
},
|
|
8958
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions": {
|
|
8959
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
8960
|
+
"datatype": true,
|
|
8961
|
+
"docs": {
|
|
8962
|
+
"stability": "experimental",
|
|
8963
|
+
"summary": "Options for selecting a predefined Amazon-managed image.",
|
|
8964
|
+
"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});",
|
|
8965
|
+
"custom": {
|
|
8966
|
+
"exampleMetadata": "infused"
|
|
8967
|
+
}
|
|
8968
|
+
},
|
|
8969
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponentOptions",
|
|
8970
|
+
"kind": "interface",
|
|
8971
|
+
"locationInModule": {
|
|
8972
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8973
|
+
"line": 27
|
|
8974
|
+
},
|
|
8975
|
+
"name": "AmazonManagedComponentOptions",
|
|
8976
|
+
"properties": [
|
|
8977
|
+
{
|
|
8978
|
+
"abstract": true,
|
|
8979
|
+
"docs": {
|
|
8980
|
+
"stability": "experimental",
|
|
8981
|
+
"summary": "The platform of the Amazon-managed component."
|
|
8982
|
+
},
|
|
8983
|
+
"immutable": true,
|
|
8984
|
+
"locationInModule": {
|
|
8985
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
8986
|
+
"line": 31
|
|
8987
|
+
},
|
|
8988
|
+
"name": "platform",
|
|
8989
|
+
"type": {
|
|
8990
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.Platform"
|
|
8991
|
+
}
|
|
8992
|
+
},
|
|
8993
|
+
{
|
|
8994
|
+
"abstract": true,
|
|
8995
|
+
"docs": {
|
|
8996
|
+
"default": "- the latest version of the component, x.x.x",
|
|
8997
|
+
"stability": "experimental",
|
|
8998
|
+
"summary": "The version of the Amazon-managed component."
|
|
8999
|
+
},
|
|
9000
|
+
"immutable": true,
|
|
9001
|
+
"locationInModule": {
|
|
9002
|
+
"filename": "lib/amazon-managed-component.ts",
|
|
9003
|
+
"line": 38
|
|
9004
|
+
},
|
|
9005
|
+
"name": "componentVersion",
|
|
9006
|
+
"optional": true,
|
|
9007
|
+
"type": {
|
|
9008
|
+
"primitive": "string"
|
|
9009
|
+
}
|
|
9010
|
+
}
|
|
9011
|
+
],
|
|
9012
|
+
"symbolId": "lib/amazon-managed-component:AmazonManagedComponentOptions"
|
|
9013
|
+
},
|
|
9014
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage": {
|
|
9015
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9016
|
+
"docs": {
|
|
9017
|
+
"stability": "experimental",
|
|
9018
|
+
"summary": "Helper class for working with Amazon-managed images.",
|
|
9019
|
+
"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});",
|
|
9020
|
+
"custom": {
|
|
9021
|
+
"exampleMetadata": "infused"
|
|
9022
|
+
}
|
|
9023
|
+
},
|
|
9024
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage",
|
|
9025
|
+
"initializer": {
|
|
9026
|
+
"docs": {
|
|
9027
|
+
"stability": "experimental"
|
|
9028
|
+
}
|
|
9029
|
+
},
|
|
9030
|
+
"kind": "class",
|
|
9031
|
+
"locationInModule": {
|
|
9032
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9033
|
+
"line": 54
|
|
9034
|
+
},
|
|
9035
|
+
"methods": [
|
|
9036
|
+
{
|
|
9037
|
+
"docs": {
|
|
9038
|
+
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
9039
|
+
"stability": "experimental",
|
|
9040
|
+
"summary": "Imports the Amazon Linux 2 Amazon-managed image."
|
|
8907
9041
|
},
|
|
8908
9042
|
"locationInModule": {
|
|
8909
9043
|
"filename": "lib/amazon-managed-image.ts",
|
|
8910
|
-
"line":
|
|
9044
|
+
"line": 65
|
|
8911
9045
|
},
|
|
8912
|
-
"name": "
|
|
9046
|
+
"name": "amazonLinux2",
|
|
8913
9047
|
"parameters": [
|
|
8914
9048
|
{
|
|
8915
9049
|
"docs": {
|
|
@@ -8948,15 +9082,15 @@
|
|
|
8948
9082
|
},
|
|
8949
9083
|
{
|
|
8950
9084
|
"docs": {
|
|
8951
|
-
"see": "https://
|
|
9085
|
+
"see": "https://gallery.ecr.aws/amazonlinux/amazonlinux",
|
|
8952
9086
|
"stability": "experimental",
|
|
8953
|
-
"summary": "Imports the
|
|
9087
|
+
"summary": "Imports the Amazon Linux 2023 Amazon-managed image."
|
|
8954
9088
|
},
|
|
8955
9089
|
"locationInModule": {
|
|
8956
9090
|
"filename": "lib/amazon-managed-image.ts",
|
|
8957
|
-
"line":
|
|
9091
|
+
"line": 79
|
|
8958
9092
|
},
|
|
8959
|
-
"name": "
|
|
9093
|
+
"name": "amazonLinux2023",
|
|
8960
9094
|
"parameters": [
|
|
8961
9095
|
{
|
|
8962
9096
|
"docs": {
|
|
@@ -8995,15 +9129,14 @@
|
|
|
8995
9129
|
},
|
|
8996
9130
|
{
|
|
8997
9131
|
"docs": {
|
|
8998
|
-
"see": "https://hub.docker.com/r/microsoft/windows-servercore",
|
|
8999
9132
|
"stability": "experimental",
|
|
9000
|
-
"summary": "Imports
|
|
9133
|
+
"summary": "Imports an Amazon-managed image from its attributes."
|
|
9001
9134
|
},
|
|
9002
9135
|
"locationInModule": {
|
|
9003
9136
|
"filename": "lib/amazon-managed-image.ts",
|
|
9004
|
-
"line":
|
|
9137
|
+
"line": 276
|
|
9005
9138
|
},
|
|
9006
|
-
"name": "
|
|
9139
|
+
"name": "fromAmazonManagedImageAttributes",
|
|
9007
9140
|
"parameters": [
|
|
9008
9141
|
{
|
|
9009
9142
|
"docs": {
|
|
@@ -9025,11 +9158,11 @@
|
|
|
9025
9158
|
},
|
|
9026
9159
|
{
|
|
9027
9160
|
"docs": {
|
|
9028
|
-
"summary": "The Amazon-managed image attributes."
|
|
9161
|
+
"summary": "- The Amazon-managed image attributes."
|
|
9029
9162
|
},
|
|
9030
|
-
"name": "
|
|
9163
|
+
"name": "attrs",
|
|
9031
9164
|
"type": {
|
|
9032
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
9165
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes"
|
|
9033
9166
|
}
|
|
9034
9167
|
}
|
|
9035
9168
|
],
|
|
@@ -9042,15 +9175,14 @@
|
|
|
9042
9175
|
},
|
|
9043
9176
|
{
|
|
9044
9177
|
"docs": {
|
|
9045
|
-
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9046
9178
|
"stability": "experimental",
|
|
9047
|
-
"summary": "Imports
|
|
9179
|
+
"summary": "Imports an Amazon-managed image from its name."
|
|
9048
9180
|
},
|
|
9049
9181
|
"locationInModule": {
|
|
9050
9182
|
"filename": "lib/amazon-managed-image.ts",
|
|
9051
|
-
"line":
|
|
9183
|
+
"line": 300
|
|
9052
9184
|
},
|
|
9053
|
-
"name": "
|
|
9185
|
+
"name": "fromAmazonManagedImageName",
|
|
9054
9186
|
"parameters": [
|
|
9055
9187
|
{
|
|
9056
9188
|
"docs": {
|
|
@@ -9072,11 +9204,11 @@
|
|
|
9072
9204
|
},
|
|
9073
9205
|
{
|
|
9074
9206
|
"docs": {
|
|
9075
|
-
"summary": "The Amazon-managed image
|
|
9207
|
+
"summary": "- The name of the Amazon-managed image."
|
|
9076
9208
|
},
|
|
9077
|
-
"name": "
|
|
9209
|
+
"name": "amazonManagedImageName",
|
|
9078
9210
|
"type": {
|
|
9079
|
-
"
|
|
9211
|
+
"primitive": "string"
|
|
9080
9212
|
}
|
|
9081
9213
|
}
|
|
9082
9214
|
],
|
|
@@ -9089,15 +9221,15 @@
|
|
|
9089
9221
|
},
|
|
9090
9222
|
{
|
|
9091
9223
|
"docs": {
|
|
9092
|
-
"see": "https://
|
|
9224
|
+
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
9093
9225
|
"stability": "experimental",
|
|
9094
|
-
"summary": "Imports the
|
|
9226
|
+
"summary": "Imports the macOS 14 Amazon-managed image."
|
|
9095
9227
|
},
|
|
9096
9228
|
"locationInModule": {
|
|
9097
9229
|
"filename": "lib/amazon-managed-image.ts",
|
|
9098
|
-
"line":
|
|
9230
|
+
"line": 252
|
|
9099
9231
|
},
|
|
9100
|
-
"name": "
|
|
9232
|
+
"name": "macOS14",
|
|
9101
9233
|
"parameters": [
|
|
9102
9234
|
{
|
|
9103
9235
|
"docs": {
|
|
@@ -9136,15 +9268,15 @@
|
|
|
9136
9268
|
},
|
|
9137
9269
|
{
|
|
9138
9270
|
"docs": {
|
|
9139
|
-
"see": "https://docs.aws.amazon.com/
|
|
9271
|
+
"see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html",
|
|
9140
9272
|
"stability": "experimental",
|
|
9141
|
-
"summary": "Imports the
|
|
9273
|
+
"summary": "Imports the macOS 15 Amazon-managed image."
|
|
9142
9274
|
},
|
|
9143
9275
|
"locationInModule": {
|
|
9144
9276
|
"filename": "lib/amazon-managed-image.ts",
|
|
9145
|
-
"line":
|
|
9277
|
+
"line": 265
|
|
9146
9278
|
},
|
|
9147
|
-
"name": "
|
|
9279
|
+
"name": "macOS15",
|
|
9148
9280
|
"parameters": [
|
|
9149
9281
|
{
|
|
9150
9282
|
"docs": {
|
|
@@ -9183,15 +9315,15 @@
|
|
|
9183
9315
|
},
|
|
9184
9316
|
{
|
|
9185
9317
|
"docs": {
|
|
9186
|
-
"see": "https://
|
|
9318
|
+
"see": "https://aws.amazon.com/partners/redhat/faqs",
|
|
9187
9319
|
"stability": "experimental",
|
|
9188
|
-
"summary": "Imports the
|
|
9320
|
+
"summary": "Imports the Red Hat Enterprise Linux 10 Amazon-managed image."
|
|
9189
9321
|
},
|
|
9190
9322
|
"locationInModule": {
|
|
9191
9323
|
"filename": "lib/amazon-managed-image.ts",
|
|
9192
|
-
"line":
|
|
9324
|
+
"line": 92
|
|
9193
9325
|
},
|
|
9194
|
-
"name": "
|
|
9326
|
+
"name": "redHatEnterpriseLinux10",
|
|
9195
9327
|
"parameters": [
|
|
9196
9328
|
{
|
|
9197
9329
|
"docs": {
|
|
@@ -9230,15 +9362,15 @@
|
|
|
9230
9362
|
},
|
|
9231
9363
|
{
|
|
9232
9364
|
"docs": {
|
|
9233
|
-
"see": "https://
|
|
9365
|
+
"see": "https://aws.amazon.com/linux/commercial-linux/faqs/",
|
|
9234
9366
|
"stability": "experimental",
|
|
9235
|
-
"summary": "Imports the
|
|
9367
|
+
"summary": "Imports the SUSE Linux Enterprise Server 15 Amazon-managed image."
|
|
9236
9368
|
},
|
|
9237
9369
|
"locationInModule": {
|
|
9238
9370
|
"filename": "lib/amazon-managed-image.ts",
|
|
9239
|
-
"line":
|
|
9371
|
+
"line": 105
|
|
9240
9372
|
},
|
|
9241
|
-
"name": "
|
|
9373
|
+
"name": "suseLinuxEnterpriseServer15",
|
|
9242
9374
|
"parameters": [
|
|
9243
9375
|
{
|
|
9244
9376
|
"docs": {
|
|
@@ -9277,15 +9409,15 @@
|
|
|
9277
9409
|
},
|
|
9278
9410
|
{
|
|
9279
9411
|
"docs": {
|
|
9280
|
-
"see": "https://
|
|
9412
|
+
"see": "https://hub.docker.com/_/ubuntu",
|
|
9281
9413
|
"stability": "experimental",
|
|
9282
|
-
"summary": "Imports the
|
|
9414
|
+
"summary": "Imports the Ubuntu 22.04 Amazon-managed image."
|
|
9283
9415
|
},
|
|
9284
9416
|
"locationInModule": {
|
|
9285
9417
|
"filename": "lib/amazon-managed-image.ts",
|
|
9286
|
-
"line":
|
|
9418
|
+
"line": 119
|
|
9287
9419
|
},
|
|
9288
|
-
"name": "
|
|
9420
|
+
"name": "ubuntuServer2204",
|
|
9289
9421
|
"parameters": [
|
|
9290
9422
|
{
|
|
9291
9423
|
"docs": {
|
|
@@ -9324,15 +9456,15 @@
|
|
|
9324
9456
|
},
|
|
9325
9457
|
{
|
|
9326
9458
|
"docs": {
|
|
9327
|
-
"see": "https://
|
|
9459
|
+
"see": "https://hub.docker.com/_/ubuntu",
|
|
9328
9460
|
"stability": "experimental",
|
|
9329
|
-
"summary": "Imports the
|
|
9461
|
+
"summary": "Imports the Ubuntu 24.04 Amazon-managed image."
|
|
9330
9462
|
},
|
|
9331
9463
|
"locationInModule": {
|
|
9332
9464
|
"filename": "lib/amazon-managed-image.ts",
|
|
9333
|
-
"line":
|
|
9465
|
+
"line": 133
|
|
9334
9466
|
},
|
|
9335
|
-
"name": "
|
|
9467
|
+
"name": "ubuntuServer2404",
|
|
9336
9468
|
"parameters": [
|
|
9337
9469
|
{
|
|
9338
9470
|
"docs": {
|
|
@@ -9368,361 +9500,419 @@
|
|
|
9368
9500
|
}
|
|
9369
9501
|
},
|
|
9370
9502
|
"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": [
|
|
9503
|
+
},
|
|
9395
9504
|
{
|
|
9396
|
-
"abstract": true,
|
|
9397
9505
|
"docs": {
|
|
9398
|
-
"
|
|
9506
|
+
"see": "https://hub.docker.com/r/microsoft/windows-servercore",
|
|
9399
9507
|
"stability": "experimental",
|
|
9400
|
-
"summary": "
|
|
9508
|
+
"summary": "Imports the Windows Server 2016 Core Amazon-managed image."
|
|
9401
9509
|
},
|
|
9402
|
-
"immutable": true,
|
|
9403
9510
|
"locationInModule": {
|
|
9404
9511
|
"filename": "lib/amazon-managed-image.ts",
|
|
9405
|
-
"line":
|
|
9512
|
+
"line": 147
|
|
9406
9513
|
},
|
|
9407
|
-
"name": "
|
|
9408
|
-
"
|
|
9409
|
-
|
|
9410
|
-
|
|
9514
|
+
"name": "windowsServer2016Core",
|
|
9515
|
+
"parameters": [
|
|
9516
|
+
{
|
|
9517
|
+
"docs": {
|
|
9518
|
+
"summary": "The construct scope."
|
|
9519
|
+
},
|
|
9520
|
+
"name": "scope",
|
|
9521
|
+
"type": {
|
|
9522
|
+
"fqn": "constructs.Construct"
|
|
9523
|
+
}
|
|
9524
|
+
},
|
|
9525
|
+
{
|
|
9526
|
+
"docs": {
|
|
9527
|
+
"summary": "Identifier of the construct."
|
|
9528
|
+
},
|
|
9529
|
+
"name": "id",
|
|
9530
|
+
"type": {
|
|
9531
|
+
"primitive": "string"
|
|
9532
|
+
}
|
|
9533
|
+
},
|
|
9534
|
+
{
|
|
9535
|
+
"docs": {
|
|
9536
|
+
"summary": "The Amazon-managed image attributes."
|
|
9537
|
+
},
|
|
9538
|
+
"name": "opts",
|
|
9539
|
+
"type": {
|
|
9540
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9541
|
+
}
|
|
9542
|
+
}
|
|
9543
|
+
],
|
|
9544
|
+
"returns": {
|
|
9545
|
+
"type": {
|
|
9546
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9547
|
+
}
|
|
9548
|
+
},
|
|
9549
|
+
"static": true
|
|
9411
9550
|
},
|
|
9412
9551
|
{
|
|
9413
|
-
"abstract": true,
|
|
9414
9552
|
"docs": {
|
|
9415
|
-
"
|
|
9553
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9416
9554
|
"stability": "experimental",
|
|
9417
|
-
"summary": "
|
|
9555
|
+
"summary": "Imports the Windows Server 2016 Full Amazon-managed image."
|
|
9418
9556
|
},
|
|
9419
|
-
"immutable": true,
|
|
9420
9557
|
"locationInModule": {
|
|
9421
9558
|
"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."
|
|
9559
|
+
"line": 160
|
|
9457
9560
|
},
|
|
9458
|
-
"
|
|
9459
|
-
"
|
|
9460
|
-
|
|
9461
|
-
|
|
9561
|
+
"name": "windowsServer2016Full",
|
|
9562
|
+
"parameters": [
|
|
9563
|
+
{
|
|
9564
|
+
"docs": {
|
|
9565
|
+
"summary": "The construct scope."
|
|
9566
|
+
},
|
|
9567
|
+
"name": "scope",
|
|
9568
|
+
"type": {
|
|
9569
|
+
"fqn": "constructs.Construct"
|
|
9570
|
+
}
|
|
9571
|
+
},
|
|
9572
|
+
{
|
|
9573
|
+
"docs": {
|
|
9574
|
+
"summary": "Identifier of the construct."
|
|
9575
|
+
},
|
|
9576
|
+
"name": "id",
|
|
9577
|
+
"type": {
|
|
9578
|
+
"primitive": "string"
|
|
9579
|
+
}
|
|
9580
|
+
},
|
|
9581
|
+
{
|
|
9582
|
+
"docs": {
|
|
9583
|
+
"summary": "The Amazon-managed image attributes."
|
|
9584
|
+
},
|
|
9585
|
+
"name": "opts",
|
|
9586
|
+
"type": {
|
|
9587
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9588
|
+
}
|
|
9589
|
+
}
|
|
9590
|
+
],
|
|
9591
|
+
"returns": {
|
|
9592
|
+
"type": {
|
|
9593
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9594
|
+
}
|
|
9462
9595
|
},
|
|
9463
|
-
"
|
|
9464
|
-
"type": {
|
|
9465
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ImageArchitecture"
|
|
9466
|
-
}
|
|
9596
|
+
"static": true
|
|
9467
9597
|
},
|
|
9468
9598
|
{
|
|
9469
|
-
"abstract": true,
|
|
9470
9599
|
"docs": {
|
|
9600
|
+
"see": "https://hub.docker.com/r/microsoft/windows-servercore",
|
|
9471
9601
|
"stability": "experimental",
|
|
9472
|
-
"summary": "
|
|
9602
|
+
"summary": "Imports the Windows Server 2019 Core Amazon-managed image."
|
|
9473
9603
|
},
|
|
9474
|
-
"immutable": true,
|
|
9475
9604
|
"locationInModule": {
|
|
9476
9605
|
"filename": "lib/amazon-managed-image.ts",
|
|
9477
|
-
"line":
|
|
9606
|
+
"line": 174
|
|
9478
9607
|
},
|
|
9479
|
-
"name": "
|
|
9480
|
-
"
|
|
9481
|
-
|
|
9482
|
-
|
|
9608
|
+
"name": "windowsServer2019Core",
|
|
9609
|
+
"parameters": [
|
|
9610
|
+
{
|
|
9611
|
+
"docs": {
|
|
9612
|
+
"summary": "The construct scope."
|
|
9613
|
+
},
|
|
9614
|
+
"name": "scope",
|
|
9615
|
+
"type": {
|
|
9616
|
+
"fqn": "constructs.Construct"
|
|
9617
|
+
}
|
|
9618
|
+
},
|
|
9619
|
+
{
|
|
9620
|
+
"docs": {
|
|
9621
|
+
"summary": "Identifier of the construct."
|
|
9622
|
+
},
|
|
9623
|
+
"name": "id",
|
|
9624
|
+
"type": {
|
|
9625
|
+
"primitive": "string"
|
|
9626
|
+
}
|
|
9627
|
+
},
|
|
9628
|
+
{
|
|
9629
|
+
"docs": {
|
|
9630
|
+
"summary": "The Amazon-managed image attributes."
|
|
9631
|
+
},
|
|
9632
|
+
"name": "opts",
|
|
9633
|
+
"type": {
|
|
9634
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9635
|
+
}
|
|
9636
|
+
}
|
|
9637
|
+
],
|
|
9638
|
+
"returns": {
|
|
9639
|
+
"type": {
|
|
9640
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9641
|
+
}
|
|
9642
|
+
},
|
|
9643
|
+
"static": true
|
|
9483
9644
|
},
|
|
9484
9645
|
{
|
|
9485
|
-
"abstract": true,
|
|
9486
9646
|
"docs": {
|
|
9487
|
-
"
|
|
9647
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9488
9648
|
"stability": "experimental",
|
|
9489
|
-
"summary": "
|
|
9649
|
+
"summary": "Imports the Windows Server 2019 Full Amazon-managed image."
|
|
9490
9650
|
},
|
|
9491
|
-
"immutable": true,
|
|
9492
9651
|
"locationInModule": {
|
|
9493
9652
|
"filename": "lib/amazon-managed-image.ts",
|
|
9494
|
-
"line":
|
|
9495
|
-
},
|
|
9496
|
-
"name": "imageVersion",
|
|
9497
|
-
"optional": true,
|
|
9498
|
-
"type": {
|
|
9499
|
-
"primitive": "string"
|
|
9500
|
-
}
|
|
9501
|
-
}
|
|
9502
|
-
],
|
|
9503
|
-
"symbolId": "lib/amazon-managed-image:AmazonManagedImageOptions"
|
|
9504
|
-
},
|
|
9505
|
-
"@aws-cdk/aws-imagebuilder-alpha.AmiDistribution": {
|
|
9506
|
-
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9507
|
-
"datatype": true,
|
|
9508
|
-
"docs": {
|
|
9509
|
-
"stability": "experimental",
|
|
9510
|
-
"summary": "The regional distribution settings to use for an AMI build.",
|
|
9511
|
-
"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});",
|
|
9512
|
-
"custom": {
|
|
9513
|
-
"exampleMetadata": "infused"
|
|
9514
|
-
}
|
|
9515
|
-
},
|
|
9516
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiDistribution",
|
|
9517
|
-
"kind": "interface",
|
|
9518
|
-
"locationInModule": {
|
|
9519
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9520
|
-
"line": 188
|
|
9521
|
-
},
|
|
9522
|
-
"name": "AmiDistribution",
|
|
9523
|
-
"properties": [
|
|
9524
|
-
{
|
|
9525
|
-
"abstract": true,
|
|
9526
|
-
"docs": {
|
|
9527
|
-
"default": "None",
|
|
9528
|
-
"stability": "experimental",
|
|
9529
|
-
"summary": "The description of the AMI."
|
|
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
|
|
9589
|
-
},
|
|
9590
|
-
"name": "amiName",
|
|
9591
|
-
"optional": true,
|
|
9592
|
-
"type": {
|
|
9593
|
-
"primitive": "string"
|
|
9594
|
-
}
|
|
9595
|
-
},
|
|
9596
|
-
{
|
|
9597
|
-
"abstract": true,
|
|
9598
|
-
"docs": {
|
|
9599
|
-
"default": "None",
|
|
9600
|
-
"stability": "experimental",
|
|
9601
|
-
"summary": "The tags to apply to the distributed AMIs."
|
|
9602
|
-
},
|
|
9603
|
-
"immutable": true,
|
|
9604
|
-
"locationInModule": {
|
|
9605
|
-
"filename": "lib/distribution-configuration.ts",
|
|
9606
|
-
"line": 201
|
|
9653
|
+
"line": 187
|
|
9607
9654
|
},
|
|
9608
|
-
"name": "
|
|
9609
|
-
"
|
|
9610
|
-
|
|
9611
|
-
|
|
9612
|
-
|
|
9655
|
+
"name": "windowsServer2019Full",
|
|
9656
|
+
"parameters": [
|
|
9657
|
+
{
|
|
9658
|
+
"docs": {
|
|
9659
|
+
"summary": "The construct scope."
|
|
9660
|
+
},
|
|
9661
|
+
"name": "scope",
|
|
9662
|
+
"type": {
|
|
9663
|
+
"fqn": "constructs.Construct"
|
|
9664
|
+
}
|
|
9665
|
+
},
|
|
9666
|
+
{
|
|
9667
|
+
"docs": {
|
|
9668
|
+
"summary": "Identifier of the construct."
|
|
9669
|
+
},
|
|
9670
|
+
"name": "id",
|
|
9671
|
+
"type": {
|
|
9613
9672
|
"primitive": "string"
|
|
9673
|
+
}
|
|
9674
|
+
},
|
|
9675
|
+
{
|
|
9676
|
+
"docs": {
|
|
9677
|
+
"summary": "The Amazon-managed image attributes."
|
|
9614
9678
|
},
|
|
9615
|
-
"
|
|
9679
|
+
"name": "opts",
|
|
9680
|
+
"type": {
|
|
9681
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9682
|
+
}
|
|
9616
9683
|
}
|
|
9617
|
-
|
|
9684
|
+
],
|
|
9685
|
+
"returns": {
|
|
9686
|
+
"type": {
|
|
9687
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9688
|
+
}
|
|
9689
|
+
},
|
|
9690
|
+
"static": true
|
|
9618
9691
|
},
|
|
9619
9692
|
{
|
|
9620
|
-
"abstract": true,
|
|
9621
9693
|
"docs": {
|
|
9622
|
-
"
|
|
9694
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9623
9695
|
"stability": "experimental",
|
|
9624
|
-
"summary": "
|
|
9696
|
+
"summary": "Imports the Windows Server 2022 Core Amazon-managed image."
|
|
9625
9697
|
},
|
|
9626
|
-
"immutable": true,
|
|
9627
9698
|
"locationInModule": {
|
|
9628
|
-
"filename": "lib/
|
|
9629
|
-
"line":
|
|
9699
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9700
|
+
"line": 200
|
|
9630
9701
|
},
|
|
9631
|
-
"name": "
|
|
9632
|
-
"
|
|
9633
|
-
|
|
9634
|
-
|
|
9635
|
-
|
|
9702
|
+
"name": "windowsServer2022Core",
|
|
9703
|
+
"parameters": [
|
|
9704
|
+
{
|
|
9705
|
+
"docs": {
|
|
9706
|
+
"summary": "The construct scope."
|
|
9707
|
+
},
|
|
9708
|
+
"name": "scope",
|
|
9709
|
+
"type": {
|
|
9710
|
+
"fqn": "constructs.Construct"
|
|
9711
|
+
}
|
|
9712
|
+
},
|
|
9713
|
+
{
|
|
9714
|
+
"docs": {
|
|
9715
|
+
"summary": "Identifier of the construct."
|
|
9716
|
+
},
|
|
9717
|
+
"name": "id",
|
|
9718
|
+
"type": {
|
|
9636
9719
|
"primitive": "string"
|
|
9720
|
+
}
|
|
9721
|
+
},
|
|
9722
|
+
{
|
|
9723
|
+
"docs": {
|
|
9724
|
+
"summary": "The Amazon-managed image attributes."
|
|
9637
9725
|
},
|
|
9638
|
-
"
|
|
9726
|
+
"name": "opts",
|
|
9727
|
+
"type": {
|
|
9728
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9729
|
+
}
|
|
9639
9730
|
}
|
|
9640
|
-
|
|
9731
|
+
],
|
|
9732
|
+
"returns": {
|
|
9733
|
+
"type": {
|
|
9734
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9735
|
+
}
|
|
9736
|
+
},
|
|
9737
|
+
"static": true
|
|
9641
9738
|
},
|
|
9642
9739
|
{
|
|
9643
|
-
"abstract": true,
|
|
9644
9740
|
"docs": {
|
|
9645
|
-
"
|
|
9646
|
-
"see": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableFastLaunch.html",
|
|
9741
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9647
9742
|
"stability": "experimental",
|
|
9648
|
-
"summary": "
|
|
9743
|
+
"summary": "Imports the Windows Server 2022 Full Amazon-managed image."
|
|
9649
9744
|
},
|
|
9650
|
-
"immutable": true,
|
|
9651
9745
|
"locationInModule": {
|
|
9652
|
-
"filename": "lib/
|
|
9653
|
-
"line":
|
|
9746
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9747
|
+
"line": 213
|
|
9654
9748
|
},
|
|
9655
|
-
"name": "
|
|
9656
|
-
"
|
|
9657
|
-
|
|
9658
|
-
|
|
9659
|
-
|
|
9660
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.FastLaunchConfiguration"
|
|
9749
|
+
"name": "windowsServer2022Full",
|
|
9750
|
+
"parameters": [
|
|
9751
|
+
{
|
|
9752
|
+
"docs": {
|
|
9753
|
+
"summary": "The construct scope."
|
|
9661
9754
|
},
|
|
9662
|
-
"
|
|
9755
|
+
"name": "scope",
|
|
9756
|
+
"type": {
|
|
9757
|
+
"fqn": "constructs.Construct"
|
|
9758
|
+
}
|
|
9759
|
+
},
|
|
9760
|
+
{
|
|
9761
|
+
"docs": {
|
|
9762
|
+
"summary": "Identifier of the construct."
|
|
9763
|
+
},
|
|
9764
|
+
"name": "id",
|
|
9765
|
+
"type": {
|
|
9766
|
+
"primitive": "string"
|
|
9767
|
+
}
|
|
9768
|
+
},
|
|
9769
|
+
{
|
|
9770
|
+
"docs": {
|
|
9771
|
+
"summary": "The Amazon-managed image attributes."
|
|
9772
|
+
},
|
|
9773
|
+
"name": "opts",
|
|
9774
|
+
"type": {
|
|
9775
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9776
|
+
}
|
|
9663
9777
|
}
|
|
9664
|
-
|
|
9778
|
+
],
|
|
9779
|
+
"returns": {
|
|
9780
|
+
"type": {
|
|
9781
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9782
|
+
}
|
|
9783
|
+
},
|
|
9784
|
+
"static": true
|
|
9665
9785
|
},
|
|
9666
9786
|
{
|
|
9667
|
-
"abstract": true,
|
|
9668
9787
|
"docs": {
|
|
9669
|
-
"
|
|
9788
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9670
9789
|
"stability": "experimental",
|
|
9671
|
-
"summary": "
|
|
9790
|
+
"summary": "Imports the Windows Server 2025 Core Amazon-managed image."
|
|
9672
9791
|
},
|
|
9673
|
-
"immutable": true,
|
|
9674
9792
|
"locationInModule": {
|
|
9675
|
-
"filename": "lib/
|
|
9676
|
-
"line":
|
|
9793
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9794
|
+
"line": 226
|
|
9677
9795
|
},
|
|
9678
|
-
"name": "
|
|
9679
|
-
"
|
|
9680
|
-
|
|
9681
|
-
|
|
9682
|
-
|
|
9683
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.LaunchTemplateConfiguration"
|
|
9796
|
+
"name": "windowsServer2025Core",
|
|
9797
|
+
"parameters": [
|
|
9798
|
+
{
|
|
9799
|
+
"docs": {
|
|
9800
|
+
"summary": "The construct scope."
|
|
9684
9801
|
},
|
|
9685
|
-
"
|
|
9802
|
+
"name": "scope",
|
|
9803
|
+
"type": {
|
|
9804
|
+
"fqn": "constructs.Construct"
|
|
9805
|
+
}
|
|
9806
|
+
},
|
|
9807
|
+
{
|
|
9808
|
+
"docs": {
|
|
9809
|
+
"summary": "Identifier of the construct."
|
|
9810
|
+
},
|
|
9811
|
+
"name": "id",
|
|
9812
|
+
"type": {
|
|
9813
|
+
"primitive": "string"
|
|
9814
|
+
}
|
|
9815
|
+
},
|
|
9816
|
+
{
|
|
9817
|
+
"docs": {
|
|
9818
|
+
"summary": "The Amazon-managed image attributes."
|
|
9819
|
+
},
|
|
9820
|
+
"name": "opts",
|
|
9821
|
+
"type": {
|
|
9822
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9823
|
+
}
|
|
9686
9824
|
}
|
|
9687
|
-
|
|
9825
|
+
],
|
|
9826
|
+
"returns": {
|
|
9827
|
+
"type": {
|
|
9828
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9829
|
+
}
|
|
9830
|
+
},
|
|
9831
|
+
"static": true
|
|
9688
9832
|
},
|
|
9689
9833
|
{
|
|
9690
|
-
"abstract": true,
|
|
9691
9834
|
"docs": {
|
|
9692
|
-
"
|
|
9835
|
+
"see": "https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html",
|
|
9693
9836
|
"stability": "experimental",
|
|
9694
|
-
"summary": "
|
|
9837
|
+
"summary": "Imports the Windows Server 2025 Full Amazon-managed image."
|
|
9695
9838
|
},
|
|
9696
|
-
"immutable": true,
|
|
9697
9839
|
"locationInModule": {
|
|
9698
|
-
"filename": "lib/
|
|
9699
|
-
"line":
|
|
9840
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9841
|
+
"line": 239
|
|
9700
9842
|
},
|
|
9701
|
-
"name": "
|
|
9702
|
-
"
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9843
|
+
"name": "windowsServer2025Full",
|
|
9844
|
+
"parameters": [
|
|
9845
|
+
{
|
|
9846
|
+
"docs": {
|
|
9847
|
+
"summary": "The construct scope."
|
|
9848
|
+
},
|
|
9849
|
+
"name": "scope",
|
|
9850
|
+
"type": {
|
|
9851
|
+
"fqn": "constructs.Construct"
|
|
9852
|
+
}
|
|
9853
|
+
},
|
|
9854
|
+
{
|
|
9855
|
+
"docs": {
|
|
9856
|
+
"summary": "Identifier of the construct."
|
|
9857
|
+
},
|
|
9858
|
+
"name": "id",
|
|
9859
|
+
"type": {
|
|
9706
9860
|
"primitive": "string"
|
|
9861
|
+
}
|
|
9862
|
+
},
|
|
9863
|
+
{
|
|
9864
|
+
"docs": {
|
|
9865
|
+
"summary": "The Amazon-managed image attributes."
|
|
9707
9866
|
},
|
|
9708
|
-
"
|
|
9867
|
+
"name": "opts",
|
|
9868
|
+
"type": {
|
|
9869
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions"
|
|
9870
|
+
}
|
|
9709
9871
|
}
|
|
9710
|
-
|
|
9711
|
-
|
|
9872
|
+
],
|
|
9873
|
+
"returns": {
|
|
9874
|
+
"type": {
|
|
9875
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IImage"
|
|
9876
|
+
}
|
|
9877
|
+
},
|
|
9878
|
+
"static": true
|
|
9879
|
+
}
|
|
9880
|
+
],
|
|
9881
|
+
"name": "AmazonManagedImage",
|
|
9882
|
+
"symbolId": "lib/amazon-managed-image:AmazonManagedImage"
|
|
9883
|
+
},
|
|
9884
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes": {
|
|
9885
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9886
|
+
"datatype": true,
|
|
9887
|
+
"docs": {
|
|
9888
|
+
"stability": "experimental",
|
|
9889
|
+
"summary": "Attributes for importing an Amazon-managed image by name (and optionally a version).",
|
|
9890
|
+
"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});",
|
|
9891
|
+
"custom": {
|
|
9892
|
+
"exampleMetadata": "infused"
|
|
9893
|
+
}
|
|
9894
|
+
},
|
|
9895
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageAttributes",
|
|
9896
|
+
"kind": "interface",
|
|
9897
|
+
"locationInModule": {
|
|
9898
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9899
|
+
"line": 9
|
|
9900
|
+
},
|
|
9901
|
+
"name": "AmazonManagedImageAttributes",
|
|
9902
|
+
"properties": [
|
|
9712
9903
|
{
|
|
9713
9904
|
"abstract": true,
|
|
9714
9905
|
"docs": {
|
|
9715
|
-
"
|
|
9906
|
+
"remarks": "The provided name must be normalized by converting all alphabetical\ncharacters to lowercase, and replacing all spaces and underscores with hyphens.",
|
|
9716
9907
|
"stability": "experimental",
|
|
9717
|
-
"summary": "The
|
|
9908
|
+
"summary": "The name of the Amazon-managed image."
|
|
9718
9909
|
},
|
|
9719
9910
|
"immutable": true,
|
|
9720
9911
|
"locationInModule": {
|
|
9721
|
-
"filename": "lib/
|
|
9722
|
-
"line":
|
|
9912
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9913
|
+
"line": 14
|
|
9723
9914
|
},
|
|
9724
|
-
"name": "
|
|
9725
|
-
"optional": true,
|
|
9915
|
+
"name": "imageName",
|
|
9726
9916
|
"type": {
|
|
9727
9917
|
"primitive": "string"
|
|
9728
9918
|
}
|
|
@@ -9730,151 +9920,107 @@
|
|
|
9730
9920
|
{
|
|
9731
9921
|
"abstract": true,
|
|
9732
9922
|
"docs": {
|
|
9733
|
-
"default": "
|
|
9923
|
+
"default": "x.x.x",
|
|
9734
9924
|
"stability": "experimental",
|
|
9735
|
-
"summary": "The
|
|
9925
|
+
"summary": "The version of the Amazon-managed image."
|
|
9736
9926
|
},
|
|
9737
9927
|
"immutable": true,
|
|
9738
9928
|
"locationInModule": {
|
|
9739
|
-
"filename": "lib/
|
|
9740
|
-
"line":
|
|
9929
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9930
|
+
"line": 21
|
|
9741
9931
|
},
|
|
9742
|
-
"name": "
|
|
9932
|
+
"name": "imageVersion",
|
|
9743
9933
|
"optional": true,
|
|
9744
9934
|
"type": {
|
|
9745
|
-
"
|
|
9746
|
-
"elementtype": {
|
|
9747
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.SSMParameterConfigurations"
|
|
9748
|
-
},
|
|
9749
|
-
"kind": "array"
|
|
9750
|
-
}
|
|
9935
|
+
"primitive": "string"
|
|
9751
9936
|
}
|
|
9752
9937
|
}
|
|
9753
9938
|
],
|
|
9754
|
-
"symbolId": "lib/
|
|
9939
|
+
"symbolId": "lib/amazon-managed-image:AmazonManagedImageAttributes"
|
|
9755
9940
|
},
|
|
9756
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
9941
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions": {
|
|
9757
9942
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9758
9943
|
"datatype": true,
|
|
9759
9944
|
"docs": {
|
|
9760
9945
|
"stability": "experimental",
|
|
9761
|
-
"summary": "
|
|
9762
|
-
"example": "
|
|
9946
|
+
"summary": "Options for selecting a predefined Amazon-managed image.",
|
|
9947
|
+
"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
9948
|
"custom": {
|
|
9764
9949
|
"exampleMetadata": "infused"
|
|
9765
9950
|
}
|
|
9766
9951
|
},
|
|
9767
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
9952
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImageOptions",
|
|
9768
9953
|
"kind": "interface",
|
|
9769
9954
|
"locationInModule": {
|
|
9770
|
-
"filename": "lib/
|
|
9771
|
-
"line":
|
|
9955
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9956
|
+
"line": 27
|
|
9772
9957
|
},
|
|
9773
|
-
"name": "
|
|
9958
|
+
"name": "AmazonManagedImageOptions",
|
|
9774
9959
|
"properties": [
|
|
9775
9960
|
{
|
|
9776
9961
|
"abstract": true,
|
|
9777
9962
|
"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
9963
|
"stability": "experimental",
|
|
9804
|
-
"summary": "
|
|
9964
|
+
"summary": "The architecture of the Amazon-managed image."
|
|
9805
9965
|
},
|
|
9806
9966
|
"immutable": true,
|
|
9807
9967
|
"locationInModule": {
|
|
9808
|
-
"filename": "lib/
|
|
9809
|
-
"line":
|
|
9968
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9969
|
+
"line": 31
|
|
9810
9970
|
},
|
|
9811
|
-
"name": "
|
|
9812
|
-
"optional": true,
|
|
9971
|
+
"name": "imageArchitecture",
|
|
9813
9972
|
"type": {
|
|
9814
|
-
"
|
|
9973
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ImageArchitecture"
|
|
9815
9974
|
}
|
|
9816
9975
|
},
|
|
9817
9976
|
{
|
|
9818
9977
|
"abstract": true,
|
|
9819
9978
|
"docs": {
|
|
9820
|
-
"default": "None",
|
|
9821
9979
|
"stability": "experimental",
|
|
9822
|
-
"summary": "The
|
|
9980
|
+
"summary": "The type of the Amazon-managed image."
|
|
9823
9981
|
},
|
|
9824
9982
|
"immutable": true,
|
|
9825
9983
|
"locationInModule": {
|
|
9826
|
-
"filename": "lib/
|
|
9827
|
-
"line":
|
|
9984
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
9985
|
+
"line": 36
|
|
9828
9986
|
},
|
|
9829
|
-
"name": "
|
|
9830
|
-
"
|
|
9831
|
-
|
|
9832
|
-
"collection": {
|
|
9833
|
-
"elementtype": {
|
|
9834
|
-
"primitive": "string"
|
|
9835
|
-
},
|
|
9836
|
-
"kind": "array"
|
|
9837
|
-
}
|
|
9987
|
+
"name": "imageType",
|
|
9988
|
+
"type": {
|
|
9989
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ImageType"
|
|
9838
9990
|
}
|
|
9839
9991
|
},
|
|
9840
9992
|
{
|
|
9841
9993
|
"abstract": true,
|
|
9842
9994
|
"docs": {
|
|
9843
|
-
"default": "
|
|
9995
|
+
"default": "x.x.x",
|
|
9844
9996
|
"stability": "experimental",
|
|
9845
|
-
"summary": "The
|
|
9997
|
+
"summary": "The version of the Amazon-managed image."
|
|
9846
9998
|
},
|
|
9847
9999
|
"immutable": true,
|
|
9848
10000
|
"locationInModule": {
|
|
9849
|
-
"filename": "lib/
|
|
9850
|
-
"line":
|
|
10001
|
+
"filename": "lib/amazon-managed-image.ts",
|
|
10002
|
+
"line": 43
|
|
9851
10003
|
},
|
|
9852
|
-
"name": "
|
|
10004
|
+
"name": "imageVersion",
|
|
9853
10005
|
"optional": true,
|
|
9854
10006
|
"type": {
|
|
9855
|
-
"
|
|
9856
|
-
"elementtype": {
|
|
9857
|
-
"primitive": "string"
|
|
9858
|
-
},
|
|
9859
|
-
"kind": "array"
|
|
9860
|
-
}
|
|
10007
|
+
"primitive": "string"
|
|
9861
10008
|
}
|
|
9862
10009
|
}
|
|
9863
10010
|
],
|
|
9864
|
-
"symbolId": "lib/
|
|
10011
|
+
"symbolId": "lib/amazon-managed-image:AmazonManagedImageOptions"
|
|
9865
10012
|
},
|
|
9866
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
9867
|
-
"abstract": true,
|
|
10013
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow": {
|
|
9868
10014
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
9869
10015
|
"docs": {
|
|
9870
10016
|
"stability": "experimental",
|
|
9871
|
-
"summary": "Helper class for working with
|
|
9872
|
-
"example": "const
|
|
10017
|
+
"summary": "Helper class for working with Amazon-managed workflows.",
|
|
10018
|
+
"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
10019
|
"custom": {
|
|
9874
10020
|
"exampleMetadata": "infused"
|
|
9875
10021
|
}
|
|
9876
10022
|
},
|
|
9877
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10023
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow",
|
|
9878
10024
|
"initializer": {
|
|
9879
10025
|
"docs": {
|
|
9880
10026
|
"stability": "experimental"
|
|
@@ -9882,20 +10028,20 @@
|
|
|
9882
10028
|
},
|
|
9883
10029
|
"kind": "class",
|
|
9884
10030
|
"locationInModule": {
|
|
9885
|
-
"filename": "lib/
|
|
9886
|
-
"line":
|
|
10031
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10032
|
+
"line": 24
|
|
9887
10033
|
},
|
|
9888
10034
|
"methods": [
|
|
9889
10035
|
{
|
|
9890
10036
|
"docs": {
|
|
9891
10037
|
"stability": "experimental",
|
|
9892
|
-
"summary": "Imports the
|
|
10038
|
+
"summary": "Imports the build-container Amazon-managed workflow."
|
|
9893
10039
|
},
|
|
9894
10040
|
"locationInModule": {
|
|
9895
|
-
"filename": "lib/
|
|
9896
|
-
"line":
|
|
10041
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10042
|
+
"line": 31
|
|
9897
10043
|
},
|
|
9898
|
-
"name": "
|
|
10044
|
+
"name": "buildContainer",
|
|
9899
10045
|
"parameters": [
|
|
9900
10046
|
{
|
|
9901
10047
|
"docs": {
|
|
@@ -9914,20 +10060,11 @@
|
|
|
9914
10060
|
"type": {
|
|
9915
10061
|
"primitive": "string"
|
|
9916
10062
|
}
|
|
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
10063
|
}
|
|
9927
10064
|
],
|
|
9928
10065
|
"returns": {
|
|
9929
10066
|
"type": {
|
|
9930
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10067
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
9931
10068
|
}
|
|
9932
10069
|
},
|
|
9933
10070
|
"static": true
|
|
@@ -9935,13 +10072,13 @@
|
|
|
9935
10072
|
{
|
|
9936
10073
|
"docs": {
|
|
9937
10074
|
"stability": "experimental",
|
|
9938
|
-
"summary": "Imports
|
|
10075
|
+
"summary": "Imports the build-image AWS-managed workflow."
|
|
9939
10076
|
},
|
|
9940
10077
|
"locationInModule": {
|
|
9941
|
-
"filename": "lib/
|
|
9942
|
-
"line":
|
|
10078
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10079
|
+
"line": 44
|
|
9943
10080
|
},
|
|
9944
|
-
"name": "
|
|
10081
|
+
"name": "buildImage",
|
|
9945
10082
|
"parameters": [
|
|
9946
10083
|
{
|
|
9947
10084
|
"docs": {
|
|
@@ -9960,20 +10097,11 @@
|
|
|
9960
10097
|
"type": {
|
|
9961
10098
|
"primitive": "string"
|
|
9962
10099
|
}
|
|
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
10100
|
}
|
|
9973
10101
|
],
|
|
9974
10102
|
"returns": {
|
|
9975
10103
|
"type": {
|
|
9976
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10104
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
9977
10105
|
}
|
|
9978
10106
|
},
|
|
9979
10107
|
"static": true
|
|
@@ -9981,13 +10109,13 @@
|
|
|
9981
10109
|
{
|
|
9982
10110
|
"docs": {
|
|
9983
10111
|
"stability": "experimental",
|
|
9984
|
-
"summary": "Imports
|
|
10112
|
+
"summary": "Imports the distribute-container AWS-managed workflow."
|
|
9985
10113
|
},
|
|
9986
10114
|
"locationInModule": {
|
|
9987
|
-
"filename": "lib/
|
|
9988
|
-
"line":
|
|
10115
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10116
|
+
"line": 57
|
|
9989
10117
|
},
|
|
9990
|
-
"name": "
|
|
10118
|
+
"name": "distributeContainer",
|
|
9991
10119
|
"parameters": [
|
|
9992
10120
|
{
|
|
9993
10121
|
"docs": {
|
|
@@ -10006,20 +10134,11 @@
|
|
|
10006
10134
|
"type": {
|
|
10007
10135
|
"primitive": "string"
|
|
10008
10136
|
}
|
|
10009
|
-
},
|
|
10010
|
-
{
|
|
10011
|
-
"docs": {
|
|
10012
|
-
"summary": "- The name of the AWS-managed component."
|
|
10013
|
-
},
|
|
10014
|
-
"name": "awsManagedComponentName",
|
|
10015
|
-
"type": {
|
|
10016
|
-
"primitive": "string"
|
|
10017
|
-
}
|
|
10018
10137
|
}
|
|
10019
10138
|
],
|
|
10020
10139
|
"returns": {
|
|
10021
10140
|
"type": {
|
|
10022
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10141
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10023
10142
|
}
|
|
10024
10143
|
},
|
|
10025
10144
|
"static": true
|
|
@@ -10027,13 +10146,13 @@
|
|
|
10027
10146
|
{
|
|
10028
10147
|
"docs": {
|
|
10029
10148
|
"stability": "experimental",
|
|
10030
|
-
"summary": "Imports the
|
|
10149
|
+
"summary": "Imports the distribute-image AWS-managed workflow."
|
|
10031
10150
|
},
|
|
10032
10151
|
"locationInModule": {
|
|
10033
|
-
"filename": "lib/
|
|
10034
|
-
"line":
|
|
10152
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10153
|
+
"line": 70
|
|
10035
10154
|
},
|
|
10036
|
-
"name": "
|
|
10155
|
+
"name": "distributeImage",
|
|
10037
10156
|
"parameters": [
|
|
10038
10157
|
{
|
|
10039
10158
|
"docs": {
|
|
@@ -10052,20 +10171,11 @@
|
|
|
10052
10171
|
"type": {
|
|
10053
10172
|
"primitive": "string"
|
|
10054
10173
|
}
|
|
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
10174
|
}
|
|
10065
10175
|
],
|
|
10066
10176
|
"returns": {
|
|
10067
10177
|
"type": {
|
|
10068
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10178
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10069
10179
|
}
|
|
10070
10180
|
},
|
|
10071
10181
|
"static": true
|
|
@@ -10073,13 +10183,13 @@
|
|
|
10073
10183
|
{
|
|
10074
10184
|
"docs": {
|
|
10075
10185
|
"stability": "experimental",
|
|
10076
|
-
"summary": "Imports
|
|
10186
|
+
"summary": "Imports an AWS-managed workflow from its attributes."
|
|
10077
10187
|
},
|
|
10078
10188
|
"locationInModule": {
|
|
10079
|
-
"filename": "lib/
|
|
10080
|
-
"line":
|
|
10189
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10190
|
+
"line": 110
|
|
10081
10191
|
},
|
|
10082
|
-
"name": "
|
|
10192
|
+
"name": "fromAmazonManagedWorkflowAttributes",
|
|
10083
10193
|
"parameters": [
|
|
10084
10194
|
{
|
|
10085
10195
|
"docs": {
|
|
@@ -10101,17 +10211,17 @@
|
|
|
10101
10211
|
},
|
|
10102
10212
|
{
|
|
10103
10213
|
"docs": {
|
|
10104
|
-
"summary": "The AWS-managed
|
|
10214
|
+
"summary": "The attributes of the AWS-managed workflow."
|
|
10105
10215
|
},
|
|
10106
10216
|
"name": "attrs",
|
|
10107
10217
|
"type": {
|
|
10108
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10218
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflowAttributes"
|
|
10109
10219
|
}
|
|
10110
10220
|
}
|
|
10111
10221
|
],
|
|
10112
10222
|
"returns": {
|
|
10113
10223
|
"type": {
|
|
10114
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10224
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10115
10225
|
}
|
|
10116
10226
|
},
|
|
10117
10227
|
"static": true
|
|
@@ -10119,13 +10229,13 @@
|
|
|
10119
10229
|
{
|
|
10120
10230
|
"docs": {
|
|
10121
10231
|
"stability": "experimental",
|
|
10122
|
-
"summary": "Imports the
|
|
10232
|
+
"summary": "Imports the test-container AWS-managed workflow."
|
|
10123
10233
|
},
|
|
10124
10234
|
"locationInModule": {
|
|
10125
|
-
"filename": "lib/
|
|
10126
|
-
"line":
|
|
10235
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10236
|
+
"line": 83
|
|
10127
10237
|
},
|
|
10128
|
-
"name": "
|
|
10238
|
+
"name": "testContainer",
|
|
10129
10239
|
"parameters": [
|
|
10130
10240
|
{
|
|
10131
10241
|
"docs": {
|
|
@@ -10144,35 +10254,25 @@
|
|
|
10144
10254
|
"type": {
|
|
10145
10255
|
"primitive": "string"
|
|
10146
10256
|
}
|
|
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
10257
|
}
|
|
10157
10258
|
],
|
|
10158
10259
|
"returns": {
|
|
10159
10260
|
"type": {
|
|
10160
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10261
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10161
10262
|
}
|
|
10162
10263
|
},
|
|
10163
10264
|
"static": true
|
|
10164
10265
|
},
|
|
10165
10266
|
{
|
|
10166
10267
|
"docs": {
|
|
10167
|
-
"see": "https://docs.aws.amazon.com/imagebuilder/latest/userguide/ib-stig.html",
|
|
10168
10268
|
"stability": "experimental",
|
|
10169
|
-
"summary": "Imports the
|
|
10269
|
+
"summary": "Imports the test-image AWS-managed workflow."
|
|
10170
10270
|
},
|
|
10171
10271
|
"locationInModule": {
|
|
10172
|
-
"filename": "lib/
|
|
10173
|
-
"line":
|
|
10272
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10273
|
+
"line": 96
|
|
10174
10274
|
},
|
|
10175
|
-
"name": "
|
|
10275
|
+
"name": "testImage",
|
|
10176
10276
|
"parameters": [
|
|
10177
10277
|
{
|
|
10178
10278
|
"docs": {
|
|
@@ -10191,107 +10291,105 @@
|
|
|
10191
10291
|
"type": {
|
|
10192
10292
|
"primitive": "string"
|
|
10193
10293
|
}
|
|
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
10294
|
}
|
|
10204
10295
|
],
|
|
10205
10296
|
"returns": {
|
|
10206
10297
|
"type": {
|
|
10207
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10298
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10208
10299
|
}
|
|
10209
10300
|
},
|
|
10210
10301
|
"static": true
|
|
10211
|
-
}
|
|
10302
|
+
}
|
|
10303
|
+
],
|
|
10304
|
+
"name": "AmazonManagedWorkflow",
|
|
10305
|
+
"symbolId": "lib/amazon-managed-workflow:AmazonManagedWorkflow"
|
|
10306
|
+
},
|
|
10307
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflowAttributes": {
|
|
10308
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
10309
|
+
"datatype": true,
|
|
10310
|
+
"docs": {
|
|
10311
|
+
"stability": "experimental",
|
|
10312
|
+
"summary": "Properties for an EC2 Image Builder Amazon-managed workflow.",
|
|
10313
|
+
"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};",
|
|
10314
|
+
"custom": {
|
|
10315
|
+
"exampleMetadata": "fixture=_generated"
|
|
10316
|
+
}
|
|
10317
|
+
},
|
|
10318
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflowAttributes",
|
|
10319
|
+
"kind": "interface",
|
|
10320
|
+
"locationInModule": {
|
|
10321
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10322
|
+
"line": 9
|
|
10323
|
+
},
|
|
10324
|
+
"name": "AmazonManagedWorkflowAttributes",
|
|
10325
|
+
"properties": [
|
|
10212
10326
|
{
|
|
10327
|
+
"abstract": true,
|
|
10213
10328
|
"docs": {
|
|
10214
10329
|
"stability": "experimental",
|
|
10215
|
-
"summary": "
|
|
10330
|
+
"summary": "The name of the Amazon-managed workflow."
|
|
10216
10331
|
},
|
|
10332
|
+
"immutable": true,
|
|
10217
10333
|
"locationInModule": {
|
|
10218
|
-
"filename": "lib/
|
|
10219
|
-
"line":
|
|
10334
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10335
|
+
"line": 13
|
|
10220
10336
|
},
|
|
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
|
-
}
|
|
10337
|
+
"name": "workflowName",
|
|
10338
|
+
"type": {
|
|
10339
|
+
"primitive": "string"
|
|
10340
|
+
}
|
|
10341
|
+
},
|
|
10342
|
+
{
|
|
10343
|
+
"abstract": true,
|
|
10344
|
+
"docs": {
|
|
10345
|
+
"stability": "experimental",
|
|
10346
|
+
"summary": "The type of the Amazon-managed workflow."
|
|
10255
10347
|
},
|
|
10256
|
-
"
|
|
10348
|
+
"immutable": true,
|
|
10349
|
+
"locationInModule": {
|
|
10350
|
+
"filename": "lib/amazon-managed-workflow.ts",
|
|
10351
|
+
"line": 18
|
|
10352
|
+
},
|
|
10353
|
+
"name": "workflowType",
|
|
10354
|
+
"type": {
|
|
10355
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.WorkflowType"
|
|
10356
|
+
}
|
|
10257
10357
|
}
|
|
10258
10358
|
],
|
|
10259
|
-
"
|
|
10260
|
-
"symbolId": "lib/component:AwsManagedComponent"
|
|
10359
|
+
"symbolId": "lib/amazon-managed-workflow:AmazonManagedWorkflowAttributes"
|
|
10261
10360
|
},
|
|
10262
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
10361
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmiDistribution": {
|
|
10263
10362
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
10264
10363
|
"datatype": true,
|
|
10265
10364
|
"docs": {
|
|
10266
10365
|
"stability": "experimental",
|
|
10267
|
-
"summary": "
|
|
10268
|
-
"example": "const
|
|
10366
|
+
"summary": "The regional distribution settings to use for an AMI build.",
|
|
10367
|
+
"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
10368
|
"custom": {
|
|
10270
10369
|
"exampleMetadata": "infused"
|
|
10271
10370
|
}
|
|
10272
10371
|
},
|
|
10273
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10372
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiDistribution",
|
|
10274
10373
|
"kind": "interface",
|
|
10275
10374
|
"locationInModule": {
|
|
10276
|
-
"filename": "lib/
|
|
10277
|
-
"line":
|
|
10375
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10376
|
+
"line": 188
|
|
10278
10377
|
},
|
|
10279
|
-
"name": "
|
|
10378
|
+
"name": "AmiDistribution",
|
|
10280
10379
|
"properties": [
|
|
10281
10380
|
{
|
|
10282
10381
|
"abstract": true,
|
|
10283
10382
|
"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()`.",
|
|
10383
|
+
"default": "None",
|
|
10286
10384
|
"stability": "experimental",
|
|
10287
|
-
"summary": "The
|
|
10385
|
+
"summary": "The description of the AMI."
|
|
10288
10386
|
},
|
|
10289
10387
|
"immutable": true,
|
|
10290
10388
|
"locationInModule": {
|
|
10291
|
-
"filename": "lib/
|
|
10292
|
-
"line":
|
|
10389
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10390
|
+
"line": 208
|
|
10293
10391
|
},
|
|
10294
|
-
"name": "
|
|
10392
|
+
"name": "amiDescription",
|
|
10295
10393
|
"optional": true,
|
|
10296
10394
|
"type": {
|
|
10297
10395
|
"primitive": "string"
|
|
@@ -10300,353 +10398,326 @@
|
|
|
10300
10398
|
{
|
|
10301
10399
|
"abstract": true,
|
|
10302
10400
|
"docs": {
|
|
10303
|
-
"default": "
|
|
10401
|
+
"default": "None",
|
|
10304
10402
|
"stability": "experimental",
|
|
10305
|
-
"summary": "The
|
|
10403
|
+
"summary": "The KMS key to encrypt the distributed AMI with."
|
|
10306
10404
|
},
|
|
10307
10405
|
"immutable": true,
|
|
10308
10406
|
"locationInModule": {
|
|
10309
|
-
"filename": "lib/
|
|
10310
|
-
"line":
|
|
10407
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10408
|
+
"line": 215
|
|
10311
10409
|
},
|
|
10312
|
-
"name": "
|
|
10410
|
+
"name": "amiKmsKey",
|
|
10313
10411
|
"optional": true,
|
|
10314
10412
|
"type": {
|
|
10315
|
-
"
|
|
10413
|
+
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
10316
10414
|
}
|
|
10317
10415
|
},
|
|
10318
10416
|
{
|
|
10319
10417
|
"abstract": true,
|
|
10320
10418
|
"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.",
|
|
10419
|
+
"default": "None",
|
|
10323
10420
|
"stability": "experimental",
|
|
10324
|
-
"summary": "The
|
|
10421
|
+
"summary": "The launch permissions for the AMI, defining which principals are allowed to access the AMI."
|
|
10325
10422
|
},
|
|
10326
10423
|
"immutable": true,
|
|
10327
10424
|
"locationInModule": {
|
|
10328
|
-
"filename": "lib/
|
|
10329
|
-
"line":
|
|
10425
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10426
|
+
"line": 222
|
|
10330
10427
|
},
|
|
10331
|
-
"name": "
|
|
10428
|
+
"name": "amiLaunchPermission",
|
|
10332
10429
|
"optional": true,
|
|
10333
10430
|
"type": {
|
|
10334
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10431
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission"
|
|
10335
10432
|
}
|
|
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": [
|
|
10433
|
+
},
|
|
10434
|
+
{
|
|
10435
|
+
"abstract": true,
|
|
10436
|
+
"docs": {
|
|
10437
|
+
"default": "A name is generated from the image recipe name",
|
|
10438
|
+
"stability": "experimental",
|
|
10439
|
+
"summary": "The name to use for the distributed AMIs."
|
|
10440
|
+
},
|
|
10441
|
+
"immutable": true,
|
|
10442
|
+
"locationInModule": {
|
|
10443
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10444
|
+
"line": 229
|
|
10445
|
+
},
|
|
10446
|
+
"name": "amiName",
|
|
10447
|
+
"optional": true,
|
|
10448
|
+
"type": {
|
|
10449
|
+
"primitive": "string"
|
|
10450
|
+
}
|
|
10451
|
+
},
|
|
10362
10452
|
{
|
|
10453
|
+
"abstract": true,
|
|
10363
10454
|
"docs": {
|
|
10455
|
+
"default": "None",
|
|
10364
10456
|
"stability": "experimental",
|
|
10365
|
-
"summary": "
|
|
10457
|
+
"summary": "The tags to apply to the distributed AMIs."
|
|
10366
10458
|
},
|
|
10459
|
+
"immutable": true,
|
|
10367
10460
|
"locationInModule": {
|
|
10368
|
-
"filename": "lib/
|
|
10369
|
-
"line":
|
|
10461
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10462
|
+
"line": 201
|
|
10370
10463
|
},
|
|
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": {
|
|
10464
|
+
"name": "amiTags",
|
|
10465
|
+
"optional": true,
|
|
10466
|
+
"type": {
|
|
10467
|
+
"collection": {
|
|
10468
|
+
"elementtype": {
|
|
10388
10469
|
"primitive": "string"
|
|
10389
|
-
}
|
|
10390
|
-
|
|
10391
|
-
],
|
|
10392
|
-
"returns": {
|
|
10393
|
-
"type": {
|
|
10394
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10470
|
+
},
|
|
10471
|
+
"kind": "map"
|
|
10395
10472
|
}
|
|
10396
|
-
}
|
|
10397
|
-
"static": true
|
|
10473
|
+
}
|
|
10398
10474
|
},
|
|
10399
10475
|
{
|
|
10476
|
+
"abstract": true,
|
|
10400
10477
|
"docs": {
|
|
10478
|
+
"default": "None",
|
|
10401
10479
|
"stability": "experimental",
|
|
10402
|
-
"summary": "
|
|
10480
|
+
"summary": "The account IDs to copy the output AMI to."
|
|
10403
10481
|
},
|
|
10482
|
+
"immutable": true,
|
|
10404
10483
|
"locationInModule": {
|
|
10405
|
-
"filename": "lib/
|
|
10406
|
-
"line":
|
|
10484
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10485
|
+
"line": 236
|
|
10407
10486
|
},
|
|
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": {
|
|
10487
|
+
"name": "amiTargetAccountIds",
|
|
10488
|
+
"optional": true,
|
|
10489
|
+
"type": {
|
|
10490
|
+
"collection": {
|
|
10491
|
+
"elementtype": {
|
|
10425
10492
|
"primitive": "string"
|
|
10426
|
-
}
|
|
10427
|
-
|
|
10428
|
-
],
|
|
10429
|
-
"returns": {
|
|
10430
|
-
"type": {
|
|
10431
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10493
|
+
},
|
|
10494
|
+
"kind": "array"
|
|
10432
10495
|
}
|
|
10433
|
-
}
|
|
10434
|
-
"static": true
|
|
10496
|
+
}
|
|
10435
10497
|
},
|
|
10436
10498
|
{
|
|
10499
|
+
"abstract": true,
|
|
10437
10500
|
"docs": {
|
|
10501
|
+
"default": "None",
|
|
10502
|
+
"see": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableFastLaunch.html",
|
|
10438
10503
|
"stability": "experimental",
|
|
10439
|
-
"summary": "
|
|
10504
|
+
"summary": "The fast launch configurations to use for enabling EC2 Fast Launch on the distributed Windows AMI."
|
|
10440
10505
|
},
|
|
10506
|
+
"immutable": true,
|
|
10441
10507
|
"locationInModule": {
|
|
10442
|
-
"filename": "lib/
|
|
10443
|
-
"line":
|
|
10508
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10509
|
+
"line": 258
|
|
10444
10510
|
},
|
|
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."
|
|
10511
|
+
"name": "fastLaunchConfigurations",
|
|
10512
|
+
"optional": true,
|
|
10513
|
+
"type": {
|
|
10514
|
+
"collection": {
|
|
10515
|
+
"elementtype": {
|
|
10516
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.FastLaunchConfiguration"
|
|
10459
10517
|
},
|
|
10460
|
-
"
|
|
10461
|
-
"type": {
|
|
10462
|
-
"primitive": "string"
|
|
10463
|
-
}
|
|
10464
|
-
}
|
|
10465
|
-
],
|
|
10466
|
-
"returns": {
|
|
10467
|
-
"type": {
|
|
10468
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10518
|
+
"kind": "array"
|
|
10469
10519
|
}
|
|
10470
|
-
}
|
|
10471
|
-
"static": true
|
|
10520
|
+
}
|
|
10472
10521
|
},
|
|
10473
10522
|
{
|
|
10523
|
+
"abstract": true,
|
|
10474
10524
|
"docs": {
|
|
10525
|
+
"default": "None",
|
|
10475
10526
|
"stability": "experimental",
|
|
10476
|
-
"summary": "
|
|
10527
|
+
"summary": "The launch templates to apply the distributed AMI to."
|
|
10477
10528
|
},
|
|
10529
|
+
"immutable": true,
|
|
10478
10530
|
"locationInModule": {
|
|
10479
|
-
"filename": "lib/
|
|
10480
|
-
"line":
|
|
10531
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10532
|
+
"line": 250
|
|
10481
10533
|
},
|
|
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."
|
|
10534
|
+
"name": "launchTemplates",
|
|
10535
|
+
"optional": true,
|
|
10536
|
+
"type": {
|
|
10537
|
+
"collection": {
|
|
10538
|
+
"elementtype": {
|
|
10539
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.LaunchTemplateConfiguration"
|
|
10505
10540
|
},
|
|
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"
|
|
10541
|
+
"kind": "array"
|
|
10515
10542
|
}
|
|
10516
|
-
}
|
|
10517
|
-
"static": true
|
|
10543
|
+
}
|
|
10518
10544
|
},
|
|
10519
10545
|
{
|
|
10546
|
+
"abstract": true,
|
|
10520
10547
|
"docs": {
|
|
10548
|
+
"default": "None",
|
|
10521
10549
|
"stability": "experimental",
|
|
10522
|
-
"summary": "
|
|
10550
|
+
"summary": "The License Manager license configuration ARNs to apply to the distributed AMIs."
|
|
10523
10551
|
},
|
|
10552
|
+
"immutable": true,
|
|
10524
10553
|
"locationInModule": {
|
|
10525
|
-
"filename": "lib/
|
|
10526
|
-
"line":
|
|
10554
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10555
|
+
"line": 265
|
|
10527
10556
|
},
|
|
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": {
|
|
10557
|
+
"name": "licenseConfigurationArns",
|
|
10558
|
+
"optional": true,
|
|
10559
|
+
"type": {
|
|
10560
|
+
"collection": {
|
|
10561
|
+
"elementtype": {
|
|
10545
10562
|
"primitive": "string"
|
|
10546
|
-
}
|
|
10547
|
-
|
|
10548
|
-
],
|
|
10549
|
-
"returns": {
|
|
10550
|
-
"type": {
|
|
10551
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10563
|
+
},
|
|
10564
|
+
"kind": "array"
|
|
10552
10565
|
}
|
|
10553
|
-
}
|
|
10554
|
-
"static": true
|
|
10566
|
+
}
|
|
10555
10567
|
},
|
|
10556
10568
|
{
|
|
10569
|
+
"abstract": true,
|
|
10557
10570
|
"docs": {
|
|
10571
|
+
"default": "The current region is used",
|
|
10558
10572
|
"stability": "experimental",
|
|
10559
|
-
"summary": "
|
|
10573
|
+
"summary": "The target region to distribute AMIs to."
|
|
10560
10574
|
},
|
|
10575
|
+
"immutable": true,
|
|
10561
10576
|
"locationInModule": {
|
|
10562
|
-
"filename": "lib/
|
|
10563
|
-
"line":
|
|
10577
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10578
|
+
"line": 194
|
|
10564
10579
|
},
|
|
10565
|
-
"name": "
|
|
10566
|
-
"
|
|
10567
|
-
|
|
10568
|
-
|
|
10569
|
-
|
|
10570
|
-
|
|
10571
|
-
|
|
10572
|
-
|
|
10573
|
-
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10577
|
-
|
|
10578
|
-
|
|
10580
|
+
"name": "region",
|
|
10581
|
+
"optional": true,
|
|
10582
|
+
"type": {
|
|
10583
|
+
"primitive": "string"
|
|
10584
|
+
}
|
|
10585
|
+
},
|
|
10586
|
+
{
|
|
10587
|
+
"abstract": true,
|
|
10588
|
+
"docs": {
|
|
10589
|
+
"default": "None",
|
|
10590
|
+
"stability": "experimental",
|
|
10591
|
+
"summary": "The SSM parameters to create or update for the distributed AMIs."
|
|
10592
|
+
},
|
|
10593
|
+
"immutable": true,
|
|
10594
|
+
"locationInModule": {
|
|
10595
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10596
|
+
"line": 243
|
|
10597
|
+
},
|
|
10598
|
+
"name": "ssmParameters",
|
|
10599
|
+
"optional": true,
|
|
10600
|
+
"type": {
|
|
10601
|
+
"collection": {
|
|
10602
|
+
"elementtype": {
|
|
10603
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.SSMParameterConfigurations"
|
|
10579
10604
|
},
|
|
10580
|
-
"
|
|
10581
|
-
"type": {
|
|
10582
|
-
"primitive": "string"
|
|
10583
|
-
}
|
|
10584
|
-
}
|
|
10585
|
-
],
|
|
10586
|
-
"returns": {
|
|
10587
|
-
"type": {
|
|
10588
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow"
|
|
10605
|
+
"kind": "array"
|
|
10589
10606
|
}
|
|
10590
|
-
}
|
|
10591
|
-
"static": true
|
|
10607
|
+
}
|
|
10592
10608
|
}
|
|
10593
10609
|
],
|
|
10594
|
-
"
|
|
10595
|
-
"symbolId": "lib/workflow:AwsManagedWorkflow"
|
|
10610
|
+
"symbolId": "lib/distribution-configuration:AmiDistribution"
|
|
10596
10611
|
},
|
|
10597
|
-
"@aws-cdk/aws-imagebuilder-alpha.
|
|
10612
|
+
"@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission": {
|
|
10598
10613
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
10599
10614
|
"datatype": true,
|
|
10600
10615
|
"docs": {
|
|
10601
10616
|
"stability": "experimental",
|
|
10602
|
-
"summary": "
|
|
10603
|
-
"example": "//
|
|
10617
|
+
"summary": "The launch permissions for the AMI, defining which principals are allowed to access the AMI.",
|
|
10618
|
+
"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
10619
|
"custom": {
|
|
10605
|
-
"exampleMetadata": "
|
|
10620
|
+
"exampleMetadata": "infused"
|
|
10606
10621
|
}
|
|
10607
10622
|
},
|
|
10608
|
-
"fqn": "@aws-cdk/aws-imagebuilder-alpha.
|
|
10623
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.AmiLaunchPermission",
|
|
10609
10624
|
"kind": "interface",
|
|
10610
10625
|
"locationInModule": {
|
|
10611
|
-
"filename": "lib/
|
|
10612
|
-
"line":
|
|
10626
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10627
|
+
"line": 54
|
|
10613
10628
|
},
|
|
10614
|
-
"name": "
|
|
10629
|
+
"name": "AmiLaunchPermission",
|
|
10615
10630
|
"properties": [
|
|
10616
10631
|
{
|
|
10617
10632
|
"abstract": true,
|
|
10618
10633
|
"docs": {
|
|
10634
|
+
"default": "None",
|
|
10619
10635
|
"stability": "experimental",
|
|
10620
|
-
"summary": "The
|
|
10636
|
+
"summary": "The AWS account IDs to share the AMI with."
|
|
10621
10637
|
},
|
|
10622
10638
|
"immutable": true,
|
|
10623
10639
|
"locationInModule": {
|
|
10624
|
-
"filename": "lib/
|
|
10625
|
-
"line":
|
|
10640
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10641
|
+
"line": 90
|
|
10626
10642
|
},
|
|
10627
|
-
"name": "
|
|
10643
|
+
"name": "accountIds",
|
|
10644
|
+
"optional": true,
|
|
10628
10645
|
"type": {
|
|
10629
|
-
"
|
|
10646
|
+
"collection": {
|
|
10647
|
+
"elementtype": {
|
|
10648
|
+
"primitive": "string"
|
|
10649
|
+
},
|
|
10650
|
+
"kind": "array"
|
|
10651
|
+
}
|
|
10630
10652
|
}
|
|
10631
10653
|
},
|
|
10632
10654
|
{
|
|
10633
10655
|
"abstract": true,
|
|
10634
10656
|
"docs": {
|
|
10657
|
+
"default": "false",
|
|
10658
|
+
"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
10659
|
"stability": "experimental",
|
|
10636
|
-
"summary": "
|
|
10660
|
+
"summary": "Whether to make the AMI public. Block public access for AMIs must be disabled to make the AMI public."
|
|
10637
10661
|
},
|
|
10638
10662
|
"immutable": true,
|
|
10639
10663
|
"locationInModule": {
|
|
10640
|
-
"filename": "lib/
|
|
10641
|
-
"line":
|
|
10664
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10665
|
+
"line": 83
|
|
10642
10666
|
},
|
|
10643
|
-
"name": "
|
|
10667
|
+
"name": "isPublicUserGroup",
|
|
10668
|
+
"optional": true,
|
|
10644
10669
|
"type": {
|
|
10645
|
-
"
|
|
10670
|
+
"primitive": "boolean"
|
|
10671
|
+
}
|
|
10672
|
+
},
|
|
10673
|
+
{
|
|
10674
|
+
"abstract": true,
|
|
10675
|
+
"docs": {
|
|
10676
|
+
"default": "None",
|
|
10677
|
+
"stability": "experimental",
|
|
10678
|
+
"summary": "The ARNs for the AWS Organizations organizational units to share the AMI with."
|
|
10679
|
+
},
|
|
10680
|
+
"immutable": true,
|
|
10681
|
+
"locationInModule": {
|
|
10682
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10683
|
+
"line": 60
|
|
10684
|
+
},
|
|
10685
|
+
"name": "organizationalUnitArns",
|
|
10686
|
+
"optional": true,
|
|
10687
|
+
"type": {
|
|
10688
|
+
"collection": {
|
|
10689
|
+
"elementtype": {
|
|
10690
|
+
"primitive": "string"
|
|
10691
|
+
},
|
|
10692
|
+
"kind": "array"
|
|
10693
|
+
}
|
|
10694
|
+
}
|
|
10695
|
+
},
|
|
10696
|
+
{
|
|
10697
|
+
"abstract": true,
|
|
10698
|
+
"docs": {
|
|
10699
|
+
"default": "None",
|
|
10700
|
+
"stability": "experimental",
|
|
10701
|
+
"summary": "The ARNs for the AWS Organization that you want to share the AMI with."
|
|
10702
|
+
},
|
|
10703
|
+
"immutable": true,
|
|
10704
|
+
"locationInModule": {
|
|
10705
|
+
"filename": "lib/distribution-configuration.ts",
|
|
10706
|
+
"line": 67
|
|
10707
|
+
},
|
|
10708
|
+
"name": "organizationArns",
|
|
10709
|
+
"optional": true,
|
|
10710
|
+
"type": {
|
|
10711
|
+
"collection": {
|
|
10712
|
+
"elementtype": {
|
|
10713
|
+
"primitive": "string"
|
|
10714
|
+
},
|
|
10715
|
+
"kind": "array"
|
|
10716
|
+
}
|
|
10646
10717
|
}
|
|
10647
10718
|
}
|
|
10648
10719
|
],
|
|
10649
|
-
"symbolId": "lib/
|
|
10720
|
+
"symbolId": "lib/distribution-configuration:AmiLaunchPermission"
|
|
10650
10721
|
},
|
|
10651
10722
|
"@aws-cdk/aws-imagebuilder-alpha.AwsMarketplaceComponent": {
|
|
10652
10723
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
@@ -10667,7 +10738,7 @@
|
|
|
10667
10738
|
"kind": "class",
|
|
10668
10739
|
"locationInModule": {
|
|
10669
10740
|
"filename": "lib/component.ts",
|
|
10670
|
-
"line":
|
|
10741
|
+
"line": 852
|
|
10671
10742
|
},
|
|
10672
10743
|
"methods": [
|
|
10673
10744
|
{
|
|
@@ -10677,7 +10748,7 @@
|
|
|
10677
10748
|
},
|
|
10678
10749
|
"locationInModule": {
|
|
10679
10750
|
"filename": "lib/component.ts",
|
|
10680
|
-
"line":
|
|
10751
|
+
"line": 860
|
|
10681
10752
|
},
|
|
10682
10753
|
"name": "fromAwsMarketplaceComponentAttributes",
|
|
10683
10754
|
"parameters": [
|
|
@@ -10735,7 +10806,7 @@
|
|
|
10735
10806
|
"kind": "interface",
|
|
10736
10807
|
"locationInModule": {
|
|
10737
10808
|
"filename": "lib/component.ts",
|
|
10738
|
-
"line":
|
|
10809
|
+
"line": 155
|
|
10739
10810
|
},
|
|
10740
10811
|
"name": "AwsMarketplaceComponentAttributes",
|
|
10741
10812
|
"properties": [
|
|
@@ -10749,7 +10820,7 @@
|
|
|
10749
10820
|
"immutable": true,
|
|
10750
10821
|
"locationInModule": {
|
|
10751
10822
|
"filename": "lib/component.ts",
|
|
10752
|
-
"line":
|
|
10823
|
+
"line": 159
|
|
10753
10824
|
},
|
|
10754
10825
|
"name": "componentName",
|
|
10755
10826
|
"type": {
|
|
@@ -10765,7 +10836,7 @@
|
|
|
10765
10836
|
"immutable": true,
|
|
10766
10837
|
"locationInModule": {
|
|
10767
10838
|
"filename": "lib/component.ts",
|
|
10768
|
-
"line":
|
|
10839
|
+
"line": 164
|
|
10769
10840
|
},
|
|
10770
10841
|
"name": "marketplaceProductId",
|
|
10771
10842
|
"type": {
|
|
@@ -10782,7 +10853,7 @@
|
|
|
10782
10853
|
"immutable": true,
|
|
10783
10854
|
"locationInModule": {
|
|
10784
10855
|
"filename": "lib/component.ts",
|
|
10785
|
-
"line":
|
|
10856
|
+
"line": 171
|
|
10786
10857
|
},
|
|
10787
10858
|
"name": "componentVersion",
|
|
10788
10859
|
"optional": true,
|
|
@@ -11270,7 +11341,7 @@
|
|
|
11270
11341
|
},
|
|
11271
11342
|
"locationInModule": {
|
|
11272
11343
|
"filename": "lib/component.ts",
|
|
11273
|
-
"line":
|
|
11344
|
+
"line": 1029
|
|
11274
11345
|
},
|
|
11275
11346
|
"parameters": [
|
|
11276
11347
|
{
|
|
@@ -11299,7 +11370,7 @@
|
|
|
11299
11370
|
"kind": "class",
|
|
11300
11371
|
"locationInModule": {
|
|
11301
11372
|
"filename": "lib/component.ts",
|
|
11302
|
-
"line":
|
|
11373
|
+
"line": 925
|
|
11303
11374
|
},
|
|
11304
11375
|
"methods": [
|
|
11305
11376
|
{
|
|
@@ -11309,7 +11380,7 @@
|
|
|
11309
11380
|
},
|
|
11310
11381
|
"locationInModule": {
|
|
11311
11382
|
"filename": "lib/component.ts",
|
|
11312
|
-
"line":
|
|
11383
|
+
"line": 933
|
|
11313
11384
|
},
|
|
11314
11385
|
"name": "fromComponentArn",
|
|
11315
11386
|
"parameters": [
|
|
@@ -11347,7 +11418,7 @@
|
|
|
11347
11418
|
},
|
|
11348
11419
|
"locationInModule": {
|
|
11349
11420
|
"filename": "lib/component.ts",
|
|
11350
|
-
"line":
|
|
11421
|
+
"line": 950
|
|
11351
11422
|
},
|
|
11352
11423
|
"name": "fromComponentAttributes",
|
|
11353
11424
|
"parameters": [
|
|
@@ -11385,7 +11456,7 @@
|
|
|
11385
11456
|
},
|
|
11386
11457
|
"locationInModule": {
|
|
11387
11458
|
"filename": "lib/component.ts",
|
|
11388
|
-
"line":
|
|
11459
|
+
"line": 941
|
|
11389
11460
|
},
|
|
11390
11461
|
"name": "fromComponentName",
|
|
11391
11462
|
"parameters": [
|
|
@@ -11422,7 +11493,7 @@
|
|
|
11422
11493
|
},
|
|
11423
11494
|
"locationInModule": {
|
|
11424
11495
|
"filename": "lib/component.ts",
|
|
11425
|
-
"line":
|
|
11496
|
+
"line": 996
|
|
11426
11497
|
},
|
|
11427
11498
|
"name": "isComponent",
|
|
11428
11499
|
"parameters": [
|
|
@@ -11447,7 +11518,7 @@
|
|
|
11447
11518
|
},
|
|
11448
11519
|
"locationInModule": {
|
|
11449
11520
|
"filename": "lib/component.ts",
|
|
11450
|
-
"line":
|
|
11521
|
+
"line": 901
|
|
11451
11522
|
},
|
|
11452
11523
|
"name": "grant",
|
|
11453
11524
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11486,7 +11557,7 @@
|
|
|
11486
11557
|
},
|
|
11487
11558
|
"locationInModule": {
|
|
11488
11559
|
"filename": "lib/component.ts",
|
|
11489
|
-
"line":
|
|
11560
|
+
"line": 915
|
|
11490
11561
|
},
|
|
11491
11562
|
"name": "grantRead",
|
|
11492
11563
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11519,7 +11590,7 @@
|
|
|
11519
11590
|
"immutable": true,
|
|
11520
11591
|
"locationInModule": {
|
|
11521
11592
|
"filename": "lib/component.ts",
|
|
11522
|
-
"line":
|
|
11593
|
+
"line": 928
|
|
11523
11594
|
},
|
|
11524
11595
|
"name": "PROPERTY_INJECTION_ID",
|
|
11525
11596
|
"static": true,
|
|
@@ -11535,7 +11606,7 @@
|
|
|
11535
11606
|
"immutable": true,
|
|
11536
11607
|
"locationInModule": {
|
|
11537
11608
|
"filename": "lib/component.ts",
|
|
11538
|
-
"line":
|
|
11609
|
+
"line": 1003
|
|
11539
11610
|
},
|
|
11540
11611
|
"name": "componentArn",
|
|
11541
11612
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11551,7 +11622,7 @@
|
|
|
11551
11622
|
"immutable": true,
|
|
11552
11623
|
"locationInModule": {
|
|
11553
11624
|
"filename": "lib/component.ts",
|
|
11554
|
-
"line":
|
|
11625
|
+
"line": 1008
|
|
11555
11626
|
},
|
|
11556
11627
|
"name": "componentName",
|
|
11557
11628
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11570,7 +11641,7 @@
|
|
|
11570
11641
|
"immutable": true,
|
|
11571
11642
|
"locationInModule": {
|
|
11572
11643
|
"filename": "lib/component.ts",
|
|
11573
|
-
"line":
|
|
11644
|
+
"line": 1025
|
|
11574
11645
|
},
|
|
11575
11646
|
"name": "componentType",
|
|
11576
11647
|
"type": {
|
|
@@ -11585,7 +11656,7 @@
|
|
|
11585
11656
|
"immutable": true,
|
|
11586
11657
|
"locationInModule": {
|
|
11587
11658
|
"filename": "lib/component.ts",
|
|
11588
|
-
"line":
|
|
11659
|
+
"line": 1013
|
|
11589
11660
|
},
|
|
11590
11661
|
"name": "componentVersion",
|
|
11591
11662
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11601,7 +11672,7 @@
|
|
|
11601
11672
|
"immutable": true,
|
|
11602
11673
|
"locationInModule": {
|
|
11603
11674
|
"filename": "lib/component.ts",
|
|
11604
|
-
"line":
|
|
11675
|
+
"line": 1018
|
|
11605
11676
|
},
|
|
11606
11677
|
"name": "encrypted",
|
|
11607
11678
|
"type": {
|
|
@@ -11615,7 +11686,7 @@
|
|
|
11615
11686
|
"immutable": true,
|
|
11616
11687
|
"locationInModule": {
|
|
11617
11688
|
"filename": "lib/component.ts",
|
|
11618
|
-
"line":
|
|
11689
|
+
"line": 1027
|
|
11619
11690
|
},
|
|
11620
11691
|
"name": "kmsKey",
|
|
11621
11692
|
"optional": true,
|
|
@@ -11641,7 +11712,7 @@
|
|
|
11641
11712
|
"kind": "enum",
|
|
11642
11713
|
"locationInModule": {
|
|
11643
11714
|
"filename": "lib/component.ts",
|
|
11644
|
-
"line":
|
|
11715
|
+
"line": 390
|
|
11645
11716
|
},
|
|
11646
11717
|
"members": [
|
|
11647
11718
|
{
|
|
@@ -12012,7 +12083,7 @@
|
|
|
12012
12083
|
},
|
|
12013
12084
|
"locationInModule": {
|
|
12014
12085
|
"filename": "lib/component.ts",
|
|
12015
|
-
"line":
|
|
12086
|
+
"line": 357
|
|
12016
12087
|
},
|
|
12017
12088
|
"parameters": [
|
|
12018
12089
|
{
|
|
@@ -12033,7 +12104,7 @@
|
|
|
12033
12104
|
"kind": "class",
|
|
12034
12105
|
"locationInModule": {
|
|
12035
12106
|
"filename": "lib/component.ts",
|
|
12036
|
-
"line":
|
|
12107
|
+
"line": 337
|
|
12037
12108
|
},
|
|
12038
12109
|
"methods": [
|
|
12039
12110
|
{
|
|
@@ -12043,7 +12114,7 @@
|
|
|
12043
12114
|
},
|
|
12044
12115
|
"locationInModule": {
|
|
12045
12116
|
"filename": "lib/component.ts",
|
|
12046
|
-
"line":
|
|
12117
|
+
"line": 343
|
|
12047
12118
|
},
|
|
12048
12119
|
"name": "fromString",
|
|
12049
12120
|
"parameters": [
|
|
@@ -12075,7 +12146,7 @@
|
|
|
12075
12146
|
"immutable": true,
|
|
12076
12147
|
"locationInModule": {
|
|
12077
12148
|
"filename": "lib/component.ts",
|
|
12078
|
-
"line":
|
|
12149
|
+
"line": 350
|
|
12079
12150
|
},
|
|
12080
12151
|
"name": "type",
|
|
12081
12152
|
"type": {
|
|
@@ -12090,7 +12161,7 @@
|
|
|
12090
12161
|
"immutable": true,
|
|
12091
12162
|
"locationInModule": {
|
|
12092
12163
|
"filename": "lib/component.ts",
|
|
12093
|
-
"line":
|
|
12164
|
+
"line": 355
|
|
12094
12165
|
},
|
|
12095
12166
|
"name": "value",
|
|
12096
12167
|
"type": {
|
|
@@ -12115,25 +12186,12 @@
|
|
|
12115
12186
|
"initializer": {
|
|
12116
12187
|
"docs": {
|
|
12117
12188
|
"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
|
|
12189
|
+
}
|
|
12132
12190
|
},
|
|
12133
12191
|
"kind": "class",
|
|
12134
12192
|
"locationInModule": {
|
|
12135
12193
|
"filename": "lib/component.ts",
|
|
12136
|
-
"line":
|
|
12194
|
+
"line": 690
|
|
12137
12195
|
},
|
|
12138
12196
|
"methods": [
|
|
12139
12197
|
{
|
|
@@ -12143,7 +12201,7 @@
|
|
|
12143
12201
|
},
|
|
12144
12202
|
"locationInModule": {
|
|
12145
12203
|
"filename": "lib/component.ts",
|
|
12146
|
-
"line":
|
|
12204
|
+
"line": 699
|
|
12147
12205
|
},
|
|
12148
12206
|
"name": "fromAsset",
|
|
12149
12207
|
"parameters": [
|
|
@@ -12199,7 +12257,7 @@
|
|
|
12199
12257
|
},
|
|
12200
12258
|
"locationInModule": {
|
|
12201
12259
|
"filename": "lib/component.ts",
|
|
12202
|
-
"line":
|
|
12260
|
+
"line": 734
|
|
12203
12261
|
},
|
|
12204
12262
|
"name": "fromComponentDocumentJsonObject",
|
|
12205
12263
|
"parameters": [
|
|
@@ -12227,7 +12285,7 @@
|
|
|
12227
12285
|
},
|
|
12228
12286
|
"locationInModule": {
|
|
12229
12287
|
"filename": "lib/component.ts",
|
|
12230
|
-
"line":
|
|
12288
|
+
"line": 768
|
|
12231
12289
|
},
|
|
12232
12290
|
"name": "fromInline",
|
|
12233
12291
|
"parameters": [
|
|
@@ -12255,7 +12313,7 @@
|
|
|
12255
12313
|
},
|
|
12256
12314
|
"locationInModule": {
|
|
12257
12315
|
"filename": "lib/component.ts",
|
|
12258
|
-
"line":
|
|
12316
|
+
"line": 724
|
|
12259
12317
|
},
|
|
12260
12318
|
"name": "fromJsonObject",
|
|
12261
12319
|
"parameters": [
|
|
@@ -12288,7 +12346,7 @@
|
|
|
12288
12346
|
},
|
|
12289
12347
|
"locationInModule": {
|
|
12290
12348
|
"filename": "lib/component.ts",
|
|
12291
|
-
"line":
|
|
12349
|
+
"line": 715
|
|
12292
12350
|
},
|
|
12293
12351
|
"name": "fromS3",
|
|
12294
12352
|
"parameters": [
|
|
@@ -12317,43 +12375,87 @@
|
|
|
12317
12375
|
}
|
|
12318
12376
|
},
|
|
12319
12377
|
"static": true
|
|
12378
|
+
},
|
|
12379
|
+
{
|
|
12380
|
+
"abstract": true,
|
|
12381
|
+
"docs": {
|
|
12382
|
+
"remarks": "- For inline components, data is the component text\n- For S3-backed components, uri is the S3 URL",
|
|
12383
|
+
"stability": "experimental",
|
|
12384
|
+
"summary": "The rendered component data value, for use in CloudFormation."
|
|
12385
|
+
},
|
|
12386
|
+
"locationInModule": {
|
|
12387
|
+
"filename": "lib/component.ts",
|
|
12388
|
+
"line": 777
|
|
12389
|
+
},
|
|
12390
|
+
"name": "render",
|
|
12391
|
+
"returns": {
|
|
12392
|
+
"type": {
|
|
12393
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig"
|
|
12394
|
+
}
|
|
12395
|
+
}
|
|
12320
12396
|
}
|
|
12321
12397
|
],
|
|
12322
12398
|
"name": "ComponentData",
|
|
12399
|
+
"symbolId": "lib/component:ComponentData"
|
|
12400
|
+
},
|
|
12401
|
+
"@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig": {
|
|
12402
|
+
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
12403
|
+
"datatype": true,
|
|
12404
|
+
"docs": {
|
|
12405
|
+
"remarks": "- For inline components, data is the component text\n- For S3-backed components, uri is the S3 URL",
|
|
12406
|
+
"stability": "experimental",
|
|
12407
|
+
"summary": "The rendered component data value, for use in CloudFormation.",
|
|
12408
|
+
"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};",
|
|
12409
|
+
"custom": {
|
|
12410
|
+
"exampleMetadata": "fixture=_generated"
|
|
12411
|
+
}
|
|
12412
|
+
},
|
|
12413
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig",
|
|
12414
|
+
"kind": "interface",
|
|
12415
|
+
"locationInModule": {
|
|
12416
|
+
"filename": "lib/component.ts",
|
|
12417
|
+
"line": 671
|
|
12418
|
+
},
|
|
12419
|
+
"name": "ComponentDataConfig",
|
|
12323
12420
|
"properties": [
|
|
12324
12421
|
{
|
|
12325
12422
|
"abstract": true,
|
|
12326
12423
|
"docs": {
|
|
12424
|
+
"default": "- none if uri is set",
|
|
12327
12425
|
"stability": "experimental",
|
|
12328
|
-
"summary": "
|
|
12426
|
+
"summary": "The rendered component data, for use in CloudFormation."
|
|
12329
12427
|
},
|
|
12330
12428
|
"immutable": true,
|
|
12331
12429
|
"locationInModule": {
|
|
12332
12430
|
"filename": "lib/component.ts",
|
|
12333
|
-
"line":
|
|
12431
|
+
"line": 677
|
|
12334
12432
|
},
|
|
12335
|
-
"name": "
|
|
12433
|
+
"name": "data",
|
|
12434
|
+
"optional": true,
|
|
12336
12435
|
"type": {
|
|
12337
|
-
"primitive": "
|
|
12436
|
+
"primitive": "string"
|
|
12338
12437
|
}
|
|
12339
12438
|
},
|
|
12340
12439
|
{
|
|
12440
|
+
"abstract": true,
|
|
12341
12441
|
"docs": {
|
|
12442
|
+
"default": "- none if data is set",
|
|
12342
12443
|
"stability": "experimental",
|
|
12343
|
-
"summary": "The
|
|
12444
|
+
"summary": "The rendered component data URI, for use in CloudFormation."
|
|
12344
12445
|
},
|
|
12345
12446
|
"immutable": true,
|
|
12346
12447
|
"locationInModule": {
|
|
12347
12448
|
"filename": "lib/component.ts",
|
|
12348
|
-
"line":
|
|
12449
|
+
"line": 684
|
|
12349
12450
|
},
|
|
12350
|
-
"name": "
|
|
12451
|
+
"name": "uri",
|
|
12452
|
+
"optional": true,
|
|
12351
12453
|
"type": {
|
|
12352
12454
|
"primitive": "string"
|
|
12353
12455
|
}
|
|
12354
12456
|
}
|
|
12355
12457
|
],
|
|
12356
|
-
"symbolId": "lib/component:
|
|
12458
|
+
"symbolId": "lib/component:ComponentDataConfig"
|
|
12357
12459
|
},
|
|
12358
12460
|
"@aws-cdk/aws-imagebuilder-alpha.ComponentDocument": {
|
|
12359
12461
|
"assembly": "@aws-cdk/aws-imagebuilder-alpha",
|
|
@@ -12370,7 +12472,7 @@
|
|
|
12370
12472
|
"kind": "interface",
|
|
12371
12473
|
"locationInModule": {
|
|
12372
12474
|
"filename": "lib/component.ts",
|
|
12373
|
-
"line":
|
|
12475
|
+
"line": 177
|
|
12374
12476
|
},
|
|
12375
12477
|
"name": "ComponentDocument",
|
|
12376
12478
|
"properties": [
|
|
@@ -12383,7 +12485,7 @@
|
|
|
12383
12485
|
"immutable": true,
|
|
12384
12486
|
"locationInModule": {
|
|
12385
12487
|
"filename": "lib/component.ts",
|
|
12386
|
-
"line":
|
|
12488
|
+
"line": 186
|
|
12387
12489
|
},
|
|
12388
12490
|
"name": "phases",
|
|
12389
12491
|
"type": {
|
|
@@ -12404,7 +12506,7 @@
|
|
|
12404
12506
|
"immutable": true,
|
|
12405
12507
|
"locationInModule": {
|
|
12406
12508
|
"filename": "lib/component.ts",
|
|
12407
|
-
"line":
|
|
12509
|
+
"line": 181
|
|
12408
12510
|
},
|
|
12409
12511
|
"name": "schemaVersion",
|
|
12410
12512
|
"type": {
|
|
@@ -12421,7 +12523,7 @@
|
|
|
12421
12523
|
"immutable": true,
|
|
12422
12524
|
"locationInModule": {
|
|
12423
12525
|
"filename": "lib/component.ts",
|
|
12424
|
-
"line":
|
|
12526
|
+
"line": 207
|
|
12425
12527
|
},
|
|
12426
12528
|
"name": "constants",
|
|
12427
12529
|
"optional": true,
|
|
@@ -12444,7 +12546,7 @@
|
|
|
12444
12546
|
"immutable": true,
|
|
12445
12547
|
"locationInModule": {
|
|
12446
12548
|
"filename": "lib/component.ts",
|
|
12447
|
-
"line":
|
|
12549
|
+
"line": 200
|
|
12448
12550
|
},
|
|
12449
12551
|
"name": "description",
|
|
12450
12552
|
"optional": true,
|
|
@@ -12462,7 +12564,7 @@
|
|
|
12462
12564
|
"immutable": true,
|
|
12463
12565
|
"locationInModule": {
|
|
12464
12566
|
"filename": "lib/component.ts",
|
|
12465
|
-
"line":
|
|
12567
|
+
"line": 193
|
|
12466
12568
|
},
|
|
12467
12569
|
"name": "name",
|
|
12468
12570
|
"optional": true,
|
|
@@ -12480,7 +12582,7 @@
|
|
|
12480
12582
|
"immutable": true,
|
|
12481
12583
|
"locationInModule": {
|
|
12482
12584
|
"filename": "lib/component.ts",
|
|
12483
|
-
"line":
|
|
12585
|
+
"line": 214
|
|
12484
12586
|
},
|
|
12485
12587
|
"name": "parameters",
|
|
12486
12588
|
"optional": true,
|
|
@@ -12512,7 +12614,7 @@
|
|
|
12512
12614
|
"kind": "interface",
|
|
12513
12615
|
"locationInModule": {
|
|
12514
12616
|
"filename": "lib/component.ts",
|
|
12515
|
-
"line":
|
|
12617
|
+
"line": 318
|
|
12516
12618
|
},
|
|
12517
12619
|
"name": "ComponentDocumentForLoop",
|
|
12518
12620
|
"properties": [
|
|
@@ -12526,7 +12628,7 @@
|
|
|
12526
12628
|
"immutable": true,
|
|
12527
12629
|
"locationInModule": {
|
|
12528
12630
|
"filename": "lib/component.ts",
|
|
12529
|
-
"line":
|
|
12631
|
+
"line": 326
|
|
12530
12632
|
},
|
|
12531
12633
|
"name": "end",
|
|
12532
12634
|
"type": {
|
|
@@ -12543,7 +12645,7 @@
|
|
|
12543
12645
|
"immutable": true,
|
|
12544
12646
|
"locationInModule": {
|
|
12545
12647
|
"filename": "lib/component.ts",
|
|
12546
|
-
"line":
|
|
12648
|
+
"line": 322
|
|
12547
12649
|
},
|
|
12548
12650
|
"name": "start",
|
|
12549
12651
|
"type": {
|
|
@@ -12560,7 +12662,7 @@
|
|
|
12560
12662
|
"immutable": true,
|
|
12561
12663
|
"locationInModule": {
|
|
12562
12664
|
"filename": "lib/component.ts",
|
|
12563
|
-
"line":
|
|
12665
|
+
"line": 331
|
|
12564
12666
|
},
|
|
12565
12667
|
"name": "updateBy",
|
|
12566
12668
|
"type": {
|
|
@@ -12585,7 +12687,7 @@
|
|
|
12585
12687
|
"kind": "interface",
|
|
12586
12688
|
"locationInModule": {
|
|
12587
12689
|
"filename": "lib/component.ts",
|
|
12588
|
-
"line":
|
|
12690
|
+
"line": 290
|
|
12589
12691
|
},
|
|
12590
12692
|
"name": "ComponentDocumentLoop",
|
|
12591
12693
|
"properties": [
|
|
@@ -12599,7 +12701,7 @@
|
|
|
12599
12701
|
"immutable": true,
|
|
12600
12702
|
"locationInModule": {
|
|
12601
12703
|
"filename": "lib/component.ts",
|
|
12602
|
-
"line":
|
|
12704
|
+
"line": 304
|
|
12603
12705
|
},
|
|
12604
12706
|
"name": "for",
|
|
12605
12707
|
"optional": true,
|
|
@@ -12617,7 +12719,7 @@
|
|
|
12617
12719
|
"immutable": true,
|
|
12618
12720
|
"locationInModule": {
|
|
12619
12721
|
"filename": "lib/component.ts",
|
|
12620
|
-
"line":
|
|
12722
|
+
"line": 311
|
|
12621
12723
|
},
|
|
12622
12724
|
"name": "forEach",
|
|
12623
12725
|
"optional": true,
|
|
@@ -12640,7 +12742,7 @@
|
|
|
12640
12742
|
"immutable": true,
|
|
12641
12743
|
"locationInModule": {
|
|
12642
12744
|
"filename": "lib/component.ts",
|
|
12643
|
-
"line":
|
|
12745
|
+
"line": 296
|
|
12644
12746
|
},
|
|
12645
12747
|
"name": "name",
|
|
12646
12748
|
"optional": true,
|
|
@@ -12666,7 +12768,7 @@
|
|
|
12666
12768
|
"kind": "interface",
|
|
12667
12769
|
"locationInModule": {
|
|
12668
12770
|
"filename": "lib/component.ts",
|
|
12669
|
-
"line":
|
|
12771
|
+
"line": 366
|
|
12670
12772
|
},
|
|
12671
12773
|
"name": "ComponentDocumentParameterDefinition",
|
|
12672
12774
|
"properties": [
|
|
@@ -12679,7 +12781,7 @@
|
|
|
12679
12781
|
"immutable": true,
|
|
12680
12782
|
"locationInModule": {
|
|
12681
12783
|
"filename": "lib/component.ts",
|
|
12682
|
-
"line":
|
|
12784
|
+
"line": 370
|
|
12683
12785
|
},
|
|
12684
12786
|
"name": "type",
|
|
12685
12787
|
"type": {
|
|
@@ -12696,7 +12798,7 @@
|
|
|
12696
12798
|
"immutable": true,
|
|
12697
12799
|
"locationInModule": {
|
|
12698
12800
|
"filename": "lib/component.ts",
|
|
12699
|
-
"line":
|
|
12801
|
+
"line": 377
|
|
12700
12802
|
},
|
|
12701
12803
|
"name": "default",
|
|
12702
12804
|
"optional": true,
|
|
@@ -12714,7 +12816,7 @@
|
|
|
12714
12816
|
"immutable": true,
|
|
12715
12817
|
"locationInModule": {
|
|
12716
12818
|
"filename": "lib/component.ts",
|
|
12717
|
-
"line":
|
|
12819
|
+
"line": 384
|
|
12718
12820
|
},
|
|
12719
12821
|
"name": "description",
|
|
12720
12822
|
"optional": true,
|
|
@@ -12740,7 +12842,7 @@
|
|
|
12740
12842
|
"kind": "interface",
|
|
12741
12843
|
"locationInModule": {
|
|
12742
12844
|
"filename": "lib/component.ts",
|
|
12743
|
-
"line":
|
|
12845
|
+
"line": 221
|
|
12744
12846
|
},
|
|
12745
12847
|
"name": "ComponentDocumentPhase",
|
|
12746
12848
|
"properties": [
|
|
@@ -12753,7 +12855,7 @@
|
|
|
12753
12855
|
"immutable": true,
|
|
12754
12856
|
"locationInModule": {
|
|
12755
12857
|
"filename": "lib/component.ts",
|
|
12756
|
-
"line":
|
|
12858
|
+
"line": 225
|
|
12757
12859
|
},
|
|
12758
12860
|
"name": "name",
|
|
12759
12861
|
"type": {
|
|
@@ -12769,7 +12871,7 @@
|
|
|
12769
12871
|
"immutable": true,
|
|
12770
12872
|
"locationInModule": {
|
|
12771
12873
|
"filename": "lib/component.ts",
|
|
12772
|
-
"line":
|
|
12874
|
+
"line": 230
|
|
12773
12875
|
},
|
|
12774
12876
|
"name": "steps",
|
|
12775
12877
|
"type": {
|
|
@@ -12799,7 +12901,7 @@
|
|
|
12799
12901
|
"kind": "interface",
|
|
12800
12902
|
"locationInModule": {
|
|
12801
12903
|
"filename": "lib/component.ts",
|
|
12802
|
-
"line":
|
|
12904
|
+
"line": 237
|
|
12803
12905
|
},
|
|
12804
12906
|
"name": "ComponentDocumentStep",
|
|
12805
12907
|
"properties": [
|
|
@@ -12812,7 +12914,7 @@
|
|
|
12812
12914
|
"immutable": true,
|
|
12813
12915
|
"locationInModule": {
|
|
12814
12916
|
"filename": "lib/component.ts",
|
|
12815
|
-
"line":
|
|
12917
|
+
"line": 246
|
|
12816
12918
|
},
|
|
12817
12919
|
"name": "action",
|
|
12818
12920
|
"type": {
|
|
@@ -12829,7 +12931,7 @@
|
|
|
12829
12931
|
"immutable": true,
|
|
12830
12932
|
"locationInModule": {
|
|
12831
12933
|
"filename": "lib/component.ts",
|
|
12832
|
-
"line":
|
|
12934
|
+
"line": 253
|
|
12833
12935
|
},
|
|
12834
12936
|
"name": "inputs",
|
|
12835
12937
|
"type": {
|
|
@@ -12845,7 +12947,7 @@
|
|
|
12845
12947
|
"immutable": true,
|
|
12846
12948
|
"locationInModule": {
|
|
12847
12949
|
"filename": "lib/component.ts",
|
|
12848
|
-
"line":
|
|
12950
|
+
"line": 241
|
|
12849
12951
|
},
|
|
12850
12952
|
"name": "name",
|
|
12851
12953
|
"type": {
|
|
@@ -12864,7 +12966,7 @@
|
|
|
12864
12966
|
"immutable": true,
|
|
12865
12967
|
"locationInModule": {
|
|
12866
12968
|
"filename": "lib/component.ts",
|
|
12867
|
-
"line":
|
|
12969
|
+
"line": 263
|
|
12868
12970
|
},
|
|
12869
12971
|
"name": "if",
|
|
12870
12972
|
"optional": true,
|
|
@@ -12882,7 +12984,7 @@
|
|
|
12882
12984
|
"immutable": true,
|
|
12883
12985
|
"locationInModule": {
|
|
12884
12986
|
"filename": "lib/component.ts",
|
|
12885
|
-
"line":
|
|
12987
|
+
"line": 270
|
|
12886
12988
|
},
|
|
12887
12989
|
"name": "loop",
|
|
12888
12990
|
"optional": true,
|
|
@@ -12900,7 +13002,7 @@
|
|
|
12900
13002
|
"immutable": true,
|
|
12901
13003
|
"locationInModule": {
|
|
12902
13004
|
"filename": "lib/component.ts",
|
|
12903
|
-
"line":
|
|
13005
|
+
"line": 284
|
|
12904
13006
|
},
|
|
12905
13007
|
"name": "onFailure",
|
|
12906
13008
|
"optional": true,
|
|
@@ -12918,7 +13020,7 @@
|
|
|
12918
13020
|
"immutable": true,
|
|
12919
13021
|
"locationInModule": {
|
|
12920
13022
|
"filename": "lib/component.ts",
|
|
12921
|
-
"line":
|
|
13023
|
+
"line": 277
|
|
12922
13024
|
},
|
|
12923
13025
|
"name": "timeout",
|
|
12924
13026
|
"optional": true,
|
|
@@ -12943,7 +13045,7 @@
|
|
|
12943
13045
|
"kind": "enum",
|
|
12944
13046
|
"locationInModule": {
|
|
12945
13047
|
"filename": "lib/component.ts",
|
|
12946
|
-
"line":
|
|
13048
|
+
"line": 547
|
|
12947
13049
|
},
|
|
12948
13050
|
"members": [
|
|
12949
13051
|
{
|
|
@@ -12981,7 +13083,7 @@
|
|
|
12981
13083
|
"kind": "enum",
|
|
12982
13084
|
"locationInModule": {
|
|
12983
13085
|
"filename": "lib/component.ts",
|
|
12984
|
-
"line":
|
|
13086
|
+
"line": 567
|
|
12985
13087
|
},
|
|
12986
13088
|
"members": [
|
|
12987
13089
|
{
|
|
@@ -13103,7 +13205,7 @@
|
|
|
13103
13205
|
"kind": "enum",
|
|
13104
13206
|
"locationInModule": {
|
|
13105
13207
|
"filename": "lib/component.ts",
|
|
13106
|
-
"line":
|
|
13208
|
+
"line": 577
|
|
13107
13209
|
},
|
|
13108
13210
|
"members": [
|
|
13109
13211
|
{
|
|
@@ -13347,7 +13449,7 @@
|
|
|
13347
13449
|
"kind": "enum",
|
|
13348
13450
|
"locationInModule": {
|
|
13349
13451
|
"filename": "lib/component.ts",
|
|
13350
|
-
"line":
|
|
13452
|
+
"line": 604
|
|
13351
13453
|
},
|
|
13352
13454
|
"members": [
|
|
13353
13455
|
{
|
|
@@ -13378,7 +13480,7 @@
|
|
|
13378
13480
|
},
|
|
13379
13481
|
"locationInModule": {
|
|
13380
13482
|
"filename": "lib/component.ts",
|
|
13381
|
-
"line":
|
|
13483
|
+
"line": 661
|
|
13382
13484
|
},
|
|
13383
13485
|
"parameters": [
|
|
13384
13486
|
{
|
|
@@ -13393,7 +13495,7 @@
|
|
|
13393
13495
|
"kind": "class",
|
|
13394
13496
|
"locationInModule": {
|
|
13395
13497
|
"filename": "lib/component.ts",
|
|
13396
|
-
"line":
|
|
13498
|
+
"line": 646
|
|
13397
13499
|
},
|
|
13398
13500
|
"methods": [
|
|
13399
13501
|
{
|
|
@@ -13403,7 +13505,7 @@
|
|
|
13403
13505
|
},
|
|
13404
13506
|
"locationInModule": {
|
|
13405
13507
|
"filename": "lib/component.ts",
|
|
13406
|
-
"line":
|
|
13508
|
+
"line": 652
|
|
13407
13509
|
},
|
|
13408
13510
|
"name": "fromObject",
|
|
13409
13511
|
"parameters": [
|
|
@@ -13440,7 +13542,7 @@
|
|
|
13440
13542
|
"immutable": true,
|
|
13441
13543
|
"locationInModule": {
|
|
13442
13544
|
"filename": "lib/component.ts",
|
|
13443
|
-
"line":
|
|
13545
|
+
"line": 659
|
|
13444
13546
|
},
|
|
13445
13547
|
"name": "ifCondition",
|
|
13446
13548
|
"type": {
|
|
@@ -13467,7 +13569,7 @@
|
|
|
13467
13569
|
},
|
|
13468
13570
|
"locationInModule": {
|
|
13469
13571
|
"filename": "lib/component.ts",
|
|
13470
|
-
"line":
|
|
13572
|
+
"line": 638
|
|
13471
13573
|
},
|
|
13472
13574
|
"parameters": [
|
|
13473
13575
|
{
|
|
@@ -13482,7 +13584,7 @@
|
|
|
13482
13584
|
"kind": "class",
|
|
13483
13585
|
"locationInModule": {
|
|
13484
13586
|
"filename": "lib/component.ts",
|
|
13485
|
-
"line":
|
|
13587
|
+
"line": 614
|
|
13486
13588
|
},
|
|
13487
13589
|
"methods": [
|
|
13488
13590
|
{
|
|
@@ -13492,7 +13594,7 @@
|
|
|
13492
13594
|
},
|
|
13493
13595
|
"locationInModule": {
|
|
13494
13596
|
"filename": "lib/component.ts",
|
|
13495
|
-
"line":
|
|
13597
|
+
"line": 629
|
|
13496
13598
|
},
|
|
13497
13599
|
"name": "fromList",
|
|
13498
13600
|
"parameters": [
|
|
@@ -13530,7 +13632,7 @@
|
|
|
13530
13632
|
},
|
|
13531
13633
|
"locationInModule": {
|
|
13532
13634
|
"filename": "lib/component.ts",
|
|
13533
|
-
"line":
|
|
13635
|
+
"line": 620
|
|
13534
13636
|
},
|
|
13535
13637
|
"name": "fromObject",
|
|
13536
13638
|
"parameters": [
|
|
@@ -13567,7 +13669,7 @@
|
|
|
13567
13669
|
"immutable": true,
|
|
13568
13670
|
"locationInModule": {
|
|
13569
13671
|
"filename": "lib/component.ts",
|
|
13570
|
-
"line":
|
|
13672
|
+
"line": 636
|
|
13571
13673
|
},
|
|
13572
13674
|
"name": "inputs",
|
|
13573
13675
|
"type": {
|
|
@@ -17679,7 +17781,7 @@
|
|
|
17679
17781
|
"see": "https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-pipelines.html",
|
|
17680
17782
|
"stability": "experimental",
|
|
17681
17783
|
"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.
|
|
17784
|
+
"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
17785
|
"custom": {
|
|
17684
17786
|
"exampleMetadata": "infused"
|
|
17685
17787
|
}
|
|
@@ -18356,7 +18458,7 @@
|
|
|
18356
18458
|
"docs": {
|
|
18357
18459
|
"stability": "experimental",
|
|
18358
18460
|
"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.
|
|
18461
|
+
"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
18462
|
"custom": {
|
|
18361
18463
|
"exampleMetadata": "infused"
|
|
18362
18464
|
}
|
|
@@ -22492,7 +22594,7 @@
|
|
|
22492
22594
|
},
|
|
22493
22595
|
"locationInModule": {
|
|
22494
22596
|
"filename": "lib/component.ts",
|
|
22495
|
-
"line":
|
|
22597
|
+
"line": 787
|
|
22496
22598
|
},
|
|
22497
22599
|
"parameters": [
|
|
22498
22600
|
{
|
|
@@ -22513,7 +22615,7 @@
|
|
|
22513
22615
|
"kind": "class",
|
|
22514
22616
|
"locationInModule": {
|
|
22515
22617
|
"filename": "lib/component.ts",
|
|
22516
|
-
"line":
|
|
22618
|
+
"line": 783
|
|
22517
22619
|
},
|
|
22518
22620
|
"methods": [
|
|
22519
22621
|
{
|
|
@@ -22523,7 +22625,7 @@
|
|
|
22523
22625
|
},
|
|
22524
22626
|
"locationInModule": {
|
|
22525
22627
|
"filename": "lib/component.ts",
|
|
22526
|
-
"line":
|
|
22628
|
+
"line": 806
|
|
22527
22629
|
},
|
|
22528
22630
|
"name": "grantPut",
|
|
22529
22631
|
"parameters": [
|
|
@@ -22550,7 +22652,7 @@
|
|
|
22550
22652
|
},
|
|
22551
22653
|
"locationInModule": {
|
|
22552
22654
|
"filename": "lib/component.ts",
|
|
22553
|
-
"line":
|
|
22655
|
+
"line": 815
|
|
22554
22656
|
},
|
|
22555
22657
|
"name": "grantRead",
|
|
22556
22658
|
"parameters": [
|
|
@@ -22569,6 +22671,23 @@
|
|
|
22569
22671
|
"fqn": "aws-cdk-lib.aws_iam.Grant"
|
|
22570
22672
|
}
|
|
22571
22673
|
}
|
|
22674
|
+
},
|
|
22675
|
+
{
|
|
22676
|
+
"docs": {
|
|
22677
|
+
"stability": "experimental",
|
|
22678
|
+
"summary": "The rendered component data text, for use in CloudFormation."
|
|
22679
|
+
},
|
|
22680
|
+
"locationInModule": {
|
|
22681
|
+
"filename": "lib/component.ts",
|
|
22682
|
+
"line": 797
|
|
22683
|
+
},
|
|
22684
|
+
"name": "render",
|
|
22685
|
+
"overrides": "@aws-cdk/aws-imagebuilder-alpha.ComponentData",
|
|
22686
|
+
"returns": {
|
|
22687
|
+
"type": {
|
|
22688
|
+
"fqn": "@aws-cdk/aws-imagebuilder-alpha.ComponentDataConfig"
|
|
22689
|
+
}
|
|
22690
|
+
}
|
|
22572
22691
|
}
|
|
22573
22692
|
],
|
|
22574
22693
|
"name": "S3ComponentData",
|
|
@@ -22580,7 +22699,7 @@
|
|
|
22580
22699
|
"immutable": true,
|
|
22581
22700
|
"locationInModule": {
|
|
22582
22701
|
"filename": "lib/component.ts",
|
|
22583
|
-
"line":
|
|
22702
|
+
"line": 784
|
|
22584
22703
|
},
|
|
22585
22704
|
"name": "bucket",
|
|
22586
22705
|
"protected": true,
|
|
@@ -22588,22 +22707,6 @@
|
|
|
22588
22707
|
"fqn": "aws-cdk-lib.aws_s3.IBucket"
|
|
22589
22708
|
}
|
|
22590
22709
|
},
|
|
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
22710
|
{
|
|
22608
22711
|
"docs": {
|
|
22609
22712
|
"stability": "experimental"
|
|
@@ -22611,7 +22714,7 @@
|
|
|
22611
22714
|
"immutable": true,
|
|
22612
22715
|
"locationInModule": {
|
|
22613
22716
|
"filename": "lib/component.ts",
|
|
22614
|
-
"line":
|
|
22717
|
+
"line": 785
|
|
22615
22718
|
},
|
|
22616
22719
|
"name": "key",
|
|
22617
22720
|
"protected": true,
|
|
@@ -22791,7 +22894,7 @@
|
|
|
22791
22894
|
},
|
|
22792
22895
|
"locationInModule": {
|
|
22793
22896
|
"filename": "lib/workflow.ts",
|
|
22794
|
-
"line":
|
|
22897
|
+
"line": 416
|
|
22795
22898
|
},
|
|
22796
22899
|
"parameters": [
|
|
22797
22900
|
{
|
|
@@ -22812,7 +22915,7 @@
|
|
|
22812
22915
|
"kind": "class",
|
|
22813
22916
|
"locationInModule": {
|
|
22814
22917
|
"filename": "lib/workflow.ts",
|
|
22815
|
-
"line":
|
|
22918
|
+
"line": 412
|
|
22816
22919
|
},
|
|
22817
22920
|
"methods": [
|
|
22818
22921
|
{
|
|
@@ -22822,7 +22925,7 @@
|
|
|
22822
22925
|
},
|
|
22823
22926
|
"locationInModule": {
|
|
22824
22927
|
"filename": "lib/workflow.ts",
|
|
22825
|
-
"line":
|
|
22928
|
+
"line": 435
|
|
22826
22929
|
},
|
|
22827
22930
|
"name": "grantPut",
|
|
22828
22931
|
"parameters": [
|
|
@@ -22849,7 +22952,7 @@
|
|
|
22849
22952
|
},
|
|
22850
22953
|
"locationInModule": {
|
|
22851
22954
|
"filename": "lib/workflow.ts",
|
|
22852
|
-
"line":
|
|
22955
|
+
"line": 444
|
|
22853
22956
|
},
|
|
22854
22957
|
"name": "grantRead",
|
|
22855
22958
|
"parameters": [
|
|
@@ -22876,7 +22979,7 @@
|
|
|
22876
22979
|
},
|
|
22877
22980
|
"locationInModule": {
|
|
22878
22981
|
"filename": "lib/workflow.ts",
|
|
22879
|
-
"line":
|
|
22982
|
+
"line": 426
|
|
22880
22983
|
},
|
|
22881
22984
|
"name": "render",
|
|
22882
22985
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.WorkflowData",
|
|
@@ -22896,7 +22999,7 @@
|
|
|
22896
22999
|
"immutable": true,
|
|
22897
23000
|
"locationInModule": {
|
|
22898
23001
|
"filename": "lib/workflow.ts",
|
|
22899
|
-
"line":
|
|
23002
|
+
"line": 413
|
|
22900
23003
|
},
|
|
22901
23004
|
"name": "bucket",
|
|
22902
23005
|
"protected": true,
|
|
@@ -22911,7 +23014,7 @@
|
|
|
22911
23014
|
"immutable": true,
|
|
22912
23015
|
"locationInModule": {
|
|
22913
23016
|
"filename": "lib/workflow.ts",
|
|
22914
|
-
"line":
|
|
23017
|
+
"line": 414
|
|
22915
23018
|
},
|
|
22916
23019
|
"name": "key",
|
|
22917
23020
|
"protected": true,
|
|
@@ -23094,7 +23197,7 @@
|
|
|
23094
23197
|
},
|
|
23095
23198
|
"locationInModule": {
|
|
23096
23199
|
"filename": "lib/workflow.ts",
|
|
23097
|
-
"line":
|
|
23200
|
+
"line": 731
|
|
23098
23201
|
},
|
|
23099
23202
|
"parameters": [
|
|
23100
23203
|
{
|
|
@@ -23123,7 +23226,7 @@
|
|
|
23123
23226
|
"kind": "class",
|
|
23124
23227
|
"locationInModule": {
|
|
23125
23228
|
"filename": "lib/workflow.ts",
|
|
23126
|
-
"line":
|
|
23229
|
+
"line": 613
|
|
23127
23230
|
},
|
|
23128
23231
|
"methods": [
|
|
23129
23232
|
{
|
|
@@ -23133,7 +23236,7 @@
|
|
|
23133
23236
|
},
|
|
23134
23237
|
"locationInModule": {
|
|
23135
23238
|
"filename": "lib/workflow.ts",
|
|
23136
|
-
"line":
|
|
23239
|
+
"line": 621
|
|
23137
23240
|
},
|
|
23138
23241
|
"name": "fromWorkflowArn",
|
|
23139
23242
|
"parameters": [
|
|
@@ -23171,7 +23274,7 @@
|
|
|
23171
23274
|
},
|
|
23172
23275
|
"locationInModule": {
|
|
23173
23276
|
"filename": "lib/workflow.ts",
|
|
23174
|
-
"line":
|
|
23277
|
+
"line": 630
|
|
23175
23278
|
},
|
|
23176
23279
|
"name": "fromWorkflowAttributes",
|
|
23177
23280
|
"parameters": [
|
|
@@ -23208,7 +23311,7 @@
|
|
|
23208
23311
|
},
|
|
23209
23312
|
"locationInModule": {
|
|
23210
23313
|
"filename": "lib/workflow.ts",
|
|
23211
|
-
"line":
|
|
23314
|
+
"line": 707
|
|
23212
23315
|
},
|
|
23213
23316
|
"name": "isWorkflow",
|
|
23214
23317
|
"parameters": [
|
|
@@ -23233,7 +23336,7 @@
|
|
|
23233
23336
|
},
|
|
23234
23337
|
"locationInModule": {
|
|
23235
23338
|
"filename": "lib/workflow.ts",
|
|
23236
|
-
"line":
|
|
23339
|
+
"line": 589
|
|
23237
23340
|
},
|
|
23238
23341
|
"name": "grant",
|
|
23239
23342
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23272,7 +23375,7 @@
|
|
|
23272
23375
|
},
|
|
23273
23376
|
"locationInModule": {
|
|
23274
23377
|
"filename": "lib/workflow.ts",
|
|
23275
|
-
"line":
|
|
23378
|
+
"line": 603
|
|
23276
23379
|
},
|
|
23277
23380
|
"name": "grantRead",
|
|
23278
23381
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23305,7 +23408,7 @@
|
|
|
23305
23408
|
"immutable": true,
|
|
23306
23409
|
"locationInModule": {
|
|
23307
23410
|
"filename": "lib/workflow.ts",
|
|
23308
|
-
"line":
|
|
23411
|
+
"line": 616
|
|
23309
23412
|
},
|
|
23310
23413
|
"name": "PROPERTY_INJECTION_ID",
|
|
23311
23414
|
"static": true,
|
|
@@ -23321,7 +23424,7 @@
|
|
|
23321
23424
|
"immutable": true,
|
|
23322
23425
|
"locationInModule": {
|
|
23323
23426
|
"filename": "lib/workflow.ts",
|
|
23324
|
-
"line":
|
|
23427
|
+
"line": 714
|
|
23325
23428
|
},
|
|
23326
23429
|
"name": "workflowArn",
|
|
23327
23430
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23337,7 +23440,7 @@
|
|
|
23337
23440
|
"immutable": true,
|
|
23338
23441
|
"locationInModule": {
|
|
23339
23442
|
"filename": "lib/workflow.ts",
|
|
23340
|
-
"line":
|
|
23443
|
+
"line": 719
|
|
23341
23444
|
},
|
|
23342
23445
|
"name": "workflowName",
|
|
23343
23446
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23353,7 +23456,7 @@
|
|
|
23353
23456
|
"immutable": true,
|
|
23354
23457
|
"locationInModule": {
|
|
23355
23458
|
"filename": "lib/workflow.ts",
|
|
23356
|
-
"line":
|
|
23459
|
+
"line": 724
|
|
23357
23460
|
},
|
|
23358
23461
|
"name": "workflowType",
|
|
23359
23462
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23369,7 +23472,7 @@
|
|
|
23369
23472
|
"immutable": true,
|
|
23370
23473
|
"locationInModule": {
|
|
23371
23474
|
"filename": "lib/workflow.ts",
|
|
23372
|
-
"line":
|
|
23475
|
+
"line": 729
|
|
23373
23476
|
},
|
|
23374
23477
|
"name": "workflowVersion",
|
|
23375
23478
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23394,7 +23497,7 @@
|
|
|
23394
23497
|
"kind": "enum",
|
|
23395
23498
|
"locationInModule": {
|
|
23396
23499
|
"filename": "lib/workflow.ts",
|
|
23397
|
-
"line":
|
|
23500
|
+
"line": 165
|
|
23398
23501
|
},
|
|
23399
23502
|
"members": [
|
|
23400
23503
|
{
|
|
@@ -23629,7 +23732,7 @@
|
|
|
23629
23732
|
"kind": "interface",
|
|
23630
23733
|
"locationInModule": {
|
|
23631
23734
|
"filename": "lib/workflow.ts",
|
|
23632
|
-
"line":
|
|
23735
|
+
"line": 530
|
|
23633
23736
|
},
|
|
23634
23737
|
"name": "WorkflowConfiguration",
|
|
23635
23738
|
"properties": [
|
|
@@ -23642,7 +23745,7 @@
|
|
|
23642
23745
|
"immutable": true,
|
|
23643
23746
|
"locationInModule": {
|
|
23644
23747
|
"filename": "lib/workflow.ts",
|
|
23645
|
-
"line":
|
|
23748
|
+
"line": 534
|
|
23646
23749
|
},
|
|
23647
23750
|
"name": "workflow",
|
|
23648
23751
|
"type": {
|
|
@@ -23659,7 +23762,7 @@
|
|
|
23659
23762
|
"immutable": true,
|
|
23660
23763
|
"locationInModule": {
|
|
23661
23764
|
"filename": "lib/workflow.ts",
|
|
23662
|
-
"line":
|
|
23765
|
+
"line": 541
|
|
23663
23766
|
},
|
|
23664
23767
|
"name": "onFailure",
|
|
23665
23768
|
"optional": true,
|
|
@@ -23678,7 +23781,7 @@
|
|
|
23678
23781
|
"immutable": true,
|
|
23679
23782
|
"locationInModule": {
|
|
23680
23783
|
"filename": "lib/workflow.ts",
|
|
23681
|
-
"line":
|
|
23784
|
+
"line": 549
|
|
23682
23785
|
},
|
|
23683
23786
|
"name": "parallelGroup",
|
|
23684
23787
|
"optional": true,
|
|
@@ -23696,7 +23799,7 @@
|
|
|
23696
23799
|
"immutable": true,
|
|
23697
23800
|
"locationInModule": {
|
|
23698
23801
|
"filename": "lib/workflow.ts",
|
|
23699
|
-
"line":
|
|
23802
|
+
"line": 556
|
|
23700
23803
|
},
|
|
23701
23804
|
"name": "parameters",
|
|
23702
23805
|
"optional": true,
|
|
@@ -23732,7 +23835,7 @@
|
|
|
23732
23835
|
"kind": "class",
|
|
23733
23836
|
"locationInModule": {
|
|
23734
23837
|
"filename": "lib/workflow.ts",
|
|
23735
|
-
"line":
|
|
23838
|
+
"line": 353
|
|
23736
23839
|
},
|
|
23737
23840
|
"methods": [
|
|
23738
23841
|
{
|
|
@@ -23742,7 +23845,7 @@
|
|
|
23742
23845
|
},
|
|
23743
23846
|
"locationInModule": {
|
|
23744
23847
|
"filename": "lib/workflow.ts",
|
|
23745
|
-
"line":
|
|
23848
|
+
"line": 362
|
|
23746
23849
|
},
|
|
23747
23850
|
"name": "fromAsset",
|
|
23748
23851
|
"parameters": [
|
|
@@ -23798,7 +23901,7 @@
|
|
|
23798
23901
|
},
|
|
23799
23902
|
"locationInModule": {
|
|
23800
23903
|
"filename": "lib/workflow.ts",
|
|
23801
|
-
"line":
|
|
23904
|
+
"line": 397
|
|
23802
23905
|
},
|
|
23803
23906
|
"name": "fromInline",
|
|
23804
23907
|
"parameters": [
|
|
@@ -23826,7 +23929,7 @@
|
|
|
23826
23929
|
},
|
|
23827
23930
|
"locationInModule": {
|
|
23828
23931
|
"filename": "lib/workflow.ts",
|
|
23829
|
-
"line":
|
|
23932
|
+
"line": 387
|
|
23830
23933
|
},
|
|
23831
23934
|
"name": "fromJsonObject",
|
|
23832
23935
|
"parameters": [
|
|
@@ -23859,7 +23962,7 @@
|
|
|
23859
23962
|
},
|
|
23860
23963
|
"locationInModule": {
|
|
23861
23964
|
"filename": "lib/workflow.ts",
|
|
23862
|
-
"line":
|
|
23965
|
+
"line": 378
|
|
23863
23966
|
},
|
|
23864
23967
|
"name": "fromS3",
|
|
23865
23968
|
"parameters": [
|
|
@@ -23898,7 +24001,7 @@
|
|
|
23898
24001
|
},
|
|
23899
24002
|
"locationInModule": {
|
|
23900
24003
|
"filename": "lib/workflow.ts",
|
|
23901
|
-
"line":
|
|
24004
|
+
"line": 406
|
|
23902
24005
|
},
|
|
23903
24006
|
"name": "render",
|
|
23904
24007
|
"returns": {
|
|
@@ -23927,7 +24030,7 @@
|
|
|
23927
24030
|
"kind": "interface",
|
|
23928
24031
|
"locationInModule": {
|
|
23929
24032
|
"filename": "lib/workflow.ts",
|
|
23930
|
-
"line":
|
|
24033
|
+
"line": 334
|
|
23931
24034
|
},
|
|
23932
24035
|
"name": "WorkflowDataConfig",
|
|
23933
24036
|
"properties": [
|
|
@@ -23941,7 +24044,7 @@
|
|
|
23941
24044
|
"immutable": true,
|
|
23942
24045
|
"locationInModule": {
|
|
23943
24046
|
"filename": "lib/workflow.ts",
|
|
23944
|
-
"line":
|
|
24047
|
+
"line": 340
|
|
23945
24048
|
},
|
|
23946
24049
|
"name": "data",
|
|
23947
24050
|
"optional": true,
|
|
@@ -23959,7 +24062,7 @@
|
|
|
23959
24062
|
"immutable": true,
|
|
23960
24063
|
"locationInModule": {
|
|
23961
24064
|
"filename": "lib/workflow.ts",
|
|
23962
|
-
"line":
|
|
24065
|
+
"line": 347
|
|
23963
24066
|
},
|
|
23964
24067
|
"name": "uri",
|
|
23965
24068
|
"optional": true,
|
|
@@ -23984,7 +24087,7 @@
|
|
|
23984
24087
|
"kind": "enum",
|
|
23985
24088
|
"locationInModule": {
|
|
23986
24089
|
"filename": "lib/workflow.ts",
|
|
23987
|
-
"line":
|
|
24090
|
+
"line": 262
|
|
23988
24091
|
},
|
|
23989
24092
|
"members": [
|
|
23990
24093
|
{
|
|
@@ -24015,7 +24118,7 @@
|
|
|
24015
24118
|
"kind": "enum",
|
|
24016
24119
|
"locationInModule": {
|
|
24017
24120
|
"filename": "lib/workflow.ts",
|
|
24018
|
-
"line":
|
|
24121
|
+
"line": 277
|
|
24019
24122
|
},
|
|
24020
24123
|
"members": [
|
|
24021
24124
|
{
|
|
@@ -24067,7 +24170,7 @@
|
|
|
24067
24170
|
},
|
|
24068
24171
|
"locationInModule": {
|
|
24069
24172
|
"filename": "lib/workflow.ts",
|
|
24070
|
-
"line":
|
|
24173
|
+
"line": 522
|
|
24071
24174
|
},
|
|
24072
24175
|
"parameters": [
|
|
24073
24176
|
{
|
|
@@ -24087,7 +24190,7 @@
|
|
|
24087
24190
|
"kind": "class",
|
|
24088
24191
|
"locationInModule": {
|
|
24089
24192
|
"filename": "lib/workflow.ts",
|
|
24090
|
-
"line":
|
|
24193
|
+
"line": 481
|
|
24091
24194
|
},
|
|
24092
24195
|
"methods": [
|
|
24093
24196
|
{
|
|
@@ -24097,7 +24200,7 @@
|
|
|
24097
24200
|
},
|
|
24098
24201
|
"locationInModule": {
|
|
24099
24202
|
"filename": "lib/workflow.ts",
|
|
24100
|
-
"line":
|
|
24203
|
+
"line": 487
|
|
24101
24204
|
},
|
|
24102
24205
|
"name": "fromBoolean",
|
|
24103
24206
|
"parameters": [
|
|
@@ -24125,7 +24228,7 @@
|
|
|
24125
24228
|
},
|
|
24126
24229
|
"locationInModule": {
|
|
24127
24230
|
"filename": "lib/workflow.ts",
|
|
24128
|
-
"line":
|
|
24231
|
+
"line": 496
|
|
24129
24232
|
},
|
|
24130
24233
|
"name": "fromInteger",
|
|
24131
24234
|
"parameters": [
|
|
@@ -24153,7 +24256,7 @@
|
|
|
24153
24256
|
},
|
|
24154
24257
|
"locationInModule": {
|
|
24155
24258
|
"filename": "lib/workflow.ts",
|
|
24156
|
-
"line":
|
|
24259
|
+
"line": 504
|
|
24157
24260
|
},
|
|
24158
24261
|
"name": "fromString",
|
|
24159
24262
|
"parameters": [
|
|
@@ -24181,7 +24284,7 @@
|
|
|
24181
24284
|
},
|
|
24182
24285
|
"locationInModule": {
|
|
24183
24286
|
"filename": "lib/workflow.ts",
|
|
24184
|
-
"line":
|
|
24287
|
+
"line": 513
|
|
24185
24288
|
},
|
|
24186
24289
|
"name": "fromStringList",
|
|
24187
24290
|
"parameters": [
|
|
@@ -24218,7 +24321,7 @@
|
|
|
24218
24321
|
"immutable": true,
|
|
24219
24322
|
"locationInModule": {
|
|
24220
24323
|
"filename": "lib/workflow.ts",
|
|
24221
|
-
"line":
|
|
24324
|
+
"line": 520
|
|
24222
24325
|
},
|
|
24223
24326
|
"name": "value",
|
|
24224
24327
|
"type": {
|
|
@@ -24415,7 +24518,7 @@
|
|
|
24415
24518
|
"kind": "enum",
|
|
24416
24519
|
"locationInModule": {
|
|
24417
24520
|
"filename": "lib/workflow.ts",
|
|
24418
|
-
"line":
|
|
24521
|
+
"line": 302
|
|
24419
24522
|
},
|
|
24420
24523
|
"members": [
|
|
24421
24524
|
{
|
|
@@ -24443,7 +24546,7 @@
|
|
|
24443
24546
|
"kind": "enum",
|
|
24444
24547
|
"locationInModule": {
|
|
24445
24548
|
"filename": "lib/workflow.ts",
|
|
24446
|
-
"line":
|
|
24549
|
+
"line": 312
|
|
24447
24550
|
},
|
|
24448
24551
|
"members": [
|
|
24449
24552
|
{
|
|
@@ -24472,6 +24575,6 @@
|
|
|
24472
24575
|
"symbolId": "lib/workflow:WorkflowType"
|
|
24473
24576
|
}
|
|
24474
24577
|
},
|
|
24475
|
-
"version": "2.
|
|
24578
|
+
"version": "2.233.0-alpha.0",
|
|
24476
24579
|
"fingerprint": "**********"
|
|
24477
24580
|
}
|