@aws-cdk/aws-imagebuilder-alpha 2.230.0-alpha.0 → 2.232.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.
Binary file
package/.warnings.jsii.js CHANGED
@@ -260,6 +260,36 @@ function _aws_cdk_aws_imagebuilder_alpha_Repository(p) {
260
260
  }
261
261
  function _aws_cdk_aws_imagebuilder_alpha_DistributionConfiguration(p) {
262
262
  }
263
+ function _aws_cdk_aws_imagebuilder_alpha_IImage(p) {
264
+ }
265
+ function _aws_cdk_aws_imagebuilder_alpha_ImageProps(p) {
266
+ if (p == null)
267
+ return;
268
+ visitedObjects.add(p);
269
+ try {
270
+ if (!visitedObjects.has(p.recipe))
271
+ _aws_cdk_aws_imagebuilder_alpha_IRecipeBase(p.recipe);
272
+ if (!visitedObjects.has(p.distributionConfiguration))
273
+ _aws_cdk_aws_imagebuilder_alpha_IDistributionConfiguration(p.distributionConfiguration);
274
+ if (!visitedObjects.has(p.infrastructureConfiguration))
275
+ _aws_cdk_aws_imagebuilder_alpha_IInfrastructureConfiguration(p.infrastructureConfiguration);
276
+ if (p.workflows != null)
277
+ for (const o of p.workflows)
278
+ if (!visitedObjects.has(o))
279
+ _aws_cdk_aws_imagebuilder_alpha_WorkflowConfiguration(o);
280
+ }
281
+ finally {
282
+ visitedObjects.delete(p);
283
+ }
284
+ }
285
+ function _aws_cdk_aws_imagebuilder_alpha_ImageAttributes(p) {
286
+ }
287
+ function _aws_cdk_aws_imagebuilder_alpha_ImageArchitecture(p) {
288
+ }
289
+ function _aws_cdk_aws_imagebuilder_alpha_ImageType(p) {
290
+ }
291
+ function _aws_cdk_aws_imagebuilder_alpha_Image(p) {
292
+ }
263
293
  function _aws_cdk_aws_imagebuilder_alpha_IImagePipeline(p) {
264
294
  }
265
295
  function _aws_cdk_aws_imagebuilder_alpha_ImagePipelineProps(p) {
@@ -552,6 +582,24 @@ function _aws_cdk_aws_imagebuilder_alpha_AwsManagedWorkflow(p) {
552
582
  }
553
583
  function _aws_cdk_aws_imagebuilder_alpha_Workflow(p) {
554
584
  }
585
+ function _aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageAttributes(p) {
586
+ }
587
+ function _aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(p) {
588
+ if (p == null)
589
+ return;
590
+ visitedObjects.add(p);
591
+ try {
592
+ if (!visitedObjects.has(p.imageArchitecture))
593
+ _aws_cdk_aws_imagebuilder_alpha_ImageArchitecture(p.imageArchitecture);
594
+ if (!visitedObjects.has(p.imageType))
595
+ _aws_cdk_aws_imagebuilder_alpha_ImageType(p.imageType);
596
+ }
597
+ finally {
598
+ visitedObjects.delete(p);
599
+ }
600
+ }
601
+ function _aws_cdk_aws_imagebuilder_alpha_AmazonManagedImage(p) {
602
+ }
555
603
  function _aws_cdk_aws_imagebuilder_alpha_BaseImage(p) {
556
604
  }
557
605
  function _aws_cdk_aws_imagebuilder_alpha_BaseContainerImage(p) {
@@ -618,4 +666,4 @@ class DeprecationError extends Error {
618
666
  });
619
667
  }
620
668
  }
621
- module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_imagebuilder_alpha_IComponent, _aws_cdk_aws_imagebuilder_alpha_ComponentProps, _aws_cdk_aws_imagebuilder_alpha_ComponentAttributes, _aws_cdk_aws_imagebuilder_alpha_AwsManagedComponentAttributes, _aws_cdk_aws_imagebuilder_alpha_AwsMarketplaceComponentAttributes, _aws_cdk_aws_imagebuilder_alpha_ComponentDocument, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentPhase, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentStep, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentLoop, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentForLoop, _aws_cdk_aws_imagebuilder_alpha_ComponentConstantValue, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentParameterDefinition, _aws_cdk_aws_imagebuilder_alpha_ComponentAction, _aws_cdk_aws_imagebuilder_alpha_ComponentOnFailure, _aws_cdk_aws_imagebuilder_alpha_ComponentParameterType, _aws_cdk_aws_imagebuilder_alpha_ComponentPhaseName, _aws_cdk_aws_imagebuilder_alpha_ComponentSchemaVersion, _aws_cdk_aws_imagebuilder_alpha_ComponentStepInputs, _aws_cdk_aws_imagebuilder_alpha_ComponentStepIfCondition, _aws_cdk_aws_imagebuilder_alpha_ComponentData, _aws_cdk_aws_imagebuilder_alpha_S3ComponentData, _aws_cdk_aws_imagebuilder_alpha_AwsManagedComponent, _aws_cdk_aws_imagebuilder_alpha_AwsMarketplaceComponent, _aws_cdk_aws_imagebuilder_alpha_Component, _aws_cdk_aws_imagebuilder_alpha_IContainerRecipe, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipeProps, _aws_cdk_aws_imagebuilder_alpha_ContainerType, _aws_cdk_aws_imagebuilder_alpha_DockerfileTemplateConfig, _aws_cdk_aws_imagebuilder_alpha_DockerfileData, _aws_cdk_aws_imagebuilder_alpha_S3DockerfileData, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipeAttributes, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipeBase, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipe, _aws_cdk_aws_imagebuilder_alpha_IDistributionConfiguration, _aws_cdk_aws_imagebuilder_alpha_AmiLaunchPermission, _aws_cdk_aws_imagebuilder_alpha_SSMParameterConfigurations, _aws_cdk_aws_imagebuilder_alpha_LaunchTemplateConfiguration, _aws_cdk_aws_imagebuilder_alpha_FastLaunchConfiguration, _aws_cdk_aws_imagebuilder_alpha_AmiDistribution, _aws_cdk_aws_imagebuilder_alpha_ContainerDistribution, _aws_cdk_aws_imagebuilder_alpha_DistributionConfigurationProps, _aws_cdk_aws_imagebuilder_alpha_RepositoryService, _aws_cdk_aws_imagebuilder_alpha_Repository, _aws_cdk_aws_imagebuilder_alpha_DistributionConfiguration, _aws_cdk_aws_imagebuilder_alpha_IImagePipeline, _aws_cdk_aws_imagebuilder_alpha_ImagePipelineProps, _aws_cdk_aws_imagebuilder_alpha_ImagePipelineSchedule, _aws_cdk_aws_imagebuilder_alpha_ScheduleStartCondition, _aws_cdk_aws_imagebuilder_alpha_ImagePipelineStatus, _aws_cdk_aws_imagebuilder_alpha_ImagePipeline, _aws_cdk_aws_imagebuilder_alpha_IImageRecipe, _aws_cdk_aws_imagebuilder_alpha_ImageRecipeProps, _aws_cdk_aws_imagebuilder_alpha_ImageRecipeAttributes, _aws_cdk_aws_imagebuilder_alpha_ImageRecipe, _aws_cdk_aws_imagebuilder_alpha_IInfrastructureConfiguration, _aws_cdk_aws_imagebuilder_alpha_HttpTokens, _aws_cdk_aws_imagebuilder_alpha_Tenancy, _aws_cdk_aws_imagebuilder_alpha_InfrastructureConfigurationLogging, _aws_cdk_aws_imagebuilder_alpha_InfrastructureConfigurationProps, _aws_cdk_aws_imagebuilder_alpha_InfrastructureConfiguration, _aws_cdk_aws_imagebuilder_alpha_ILifecyclePolicy, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyActionType, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyStatus, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyResourceType, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyAction, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyFilter, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyCountFilter, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyAgeFilter, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyImageExclusionRules, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyAmiExclusionRules, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyExclusionRules, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyDetail, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyResourceSelection, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyProps, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicy, _aws_cdk_aws_imagebuilder_alpha_IWorkflow, _aws_cdk_aws_imagebuilder_alpha_WorkflowProps, _aws_cdk_aws_imagebuilder_alpha_WorkflowAttributes, _aws_cdk_aws_imagebuilder_alpha_AwsManagedWorkflowAttributes, _aws_cdk_aws_imagebuilder_alpha_WorkflowAction, _aws_cdk_aws_imagebuilder_alpha_WorkflowOnFailure, _aws_cdk_aws_imagebuilder_alpha_WorkflowParameterType, _aws_cdk_aws_imagebuilder_alpha_WorkflowSchemaVersion, _aws_cdk_aws_imagebuilder_alpha_WorkflowType, _aws_cdk_aws_imagebuilder_alpha_WorkflowDataConfig, _aws_cdk_aws_imagebuilder_alpha_WorkflowData, _aws_cdk_aws_imagebuilder_alpha_S3WorkflowData, _aws_cdk_aws_imagebuilder_alpha_WorkflowParameterValue, _aws_cdk_aws_imagebuilder_alpha_WorkflowConfiguration, _aws_cdk_aws_imagebuilder_alpha_AwsManagedWorkflow, _aws_cdk_aws_imagebuilder_alpha_Workflow, _aws_cdk_aws_imagebuilder_alpha_BaseImage, _aws_cdk_aws_imagebuilder_alpha_BaseContainerImage, _aws_cdk_aws_imagebuilder_alpha_ContainerInstanceImage, _aws_cdk_aws_imagebuilder_alpha_Platform, _aws_cdk_aws_imagebuilder_alpha_OSVersion, _aws_cdk_aws_imagebuilder_alpha_ComponentParameterValue, _aws_cdk_aws_imagebuilder_alpha_ComponentConfiguration, _aws_cdk_aws_imagebuilder_alpha_IRecipeBase };
669
+ module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_imagebuilder_alpha_IComponent, _aws_cdk_aws_imagebuilder_alpha_ComponentProps, _aws_cdk_aws_imagebuilder_alpha_ComponentAttributes, _aws_cdk_aws_imagebuilder_alpha_AwsManagedComponentAttributes, _aws_cdk_aws_imagebuilder_alpha_AwsMarketplaceComponentAttributes, _aws_cdk_aws_imagebuilder_alpha_ComponentDocument, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentPhase, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentStep, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentLoop, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentForLoop, _aws_cdk_aws_imagebuilder_alpha_ComponentConstantValue, _aws_cdk_aws_imagebuilder_alpha_ComponentDocumentParameterDefinition, _aws_cdk_aws_imagebuilder_alpha_ComponentAction, _aws_cdk_aws_imagebuilder_alpha_ComponentOnFailure, _aws_cdk_aws_imagebuilder_alpha_ComponentParameterType, _aws_cdk_aws_imagebuilder_alpha_ComponentPhaseName, _aws_cdk_aws_imagebuilder_alpha_ComponentSchemaVersion, _aws_cdk_aws_imagebuilder_alpha_ComponentStepInputs, _aws_cdk_aws_imagebuilder_alpha_ComponentStepIfCondition, _aws_cdk_aws_imagebuilder_alpha_ComponentData, _aws_cdk_aws_imagebuilder_alpha_S3ComponentData, _aws_cdk_aws_imagebuilder_alpha_AwsManagedComponent, _aws_cdk_aws_imagebuilder_alpha_AwsMarketplaceComponent, _aws_cdk_aws_imagebuilder_alpha_Component, _aws_cdk_aws_imagebuilder_alpha_IContainerRecipe, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipeProps, _aws_cdk_aws_imagebuilder_alpha_ContainerType, _aws_cdk_aws_imagebuilder_alpha_DockerfileTemplateConfig, _aws_cdk_aws_imagebuilder_alpha_DockerfileData, _aws_cdk_aws_imagebuilder_alpha_S3DockerfileData, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipeAttributes, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipeBase, _aws_cdk_aws_imagebuilder_alpha_ContainerRecipe, _aws_cdk_aws_imagebuilder_alpha_IDistributionConfiguration, _aws_cdk_aws_imagebuilder_alpha_AmiLaunchPermission, _aws_cdk_aws_imagebuilder_alpha_SSMParameterConfigurations, _aws_cdk_aws_imagebuilder_alpha_LaunchTemplateConfiguration, _aws_cdk_aws_imagebuilder_alpha_FastLaunchConfiguration, _aws_cdk_aws_imagebuilder_alpha_AmiDistribution, _aws_cdk_aws_imagebuilder_alpha_ContainerDistribution, _aws_cdk_aws_imagebuilder_alpha_DistributionConfigurationProps, _aws_cdk_aws_imagebuilder_alpha_RepositoryService, _aws_cdk_aws_imagebuilder_alpha_Repository, _aws_cdk_aws_imagebuilder_alpha_DistributionConfiguration, _aws_cdk_aws_imagebuilder_alpha_IImage, _aws_cdk_aws_imagebuilder_alpha_ImageProps, _aws_cdk_aws_imagebuilder_alpha_ImageAttributes, _aws_cdk_aws_imagebuilder_alpha_ImageArchitecture, _aws_cdk_aws_imagebuilder_alpha_ImageType, _aws_cdk_aws_imagebuilder_alpha_Image, _aws_cdk_aws_imagebuilder_alpha_IImagePipeline, _aws_cdk_aws_imagebuilder_alpha_ImagePipelineProps, _aws_cdk_aws_imagebuilder_alpha_ImagePipelineSchedule, _aws_cdk_aws_imagebuilder_alpha_ScheduleStartCondition, _aws_cdk_aws_imagebuilder_alpha_ImagePipelineStatus, _aws_cdk_aws_imagebuilder_alpha_ImagePipeline, _aws_cdk_aws_imagebuilder_alpha_IImageRecipe, _aws_cdk_aws_imagebuilder_alpha_ImageRecipeProps, _aws_cdk_aws_imagebuilder_alpha_ImageRecipeAttributes, _aws_cdk_aws_imagebuilder_alpha_ImageRecipe, _aws_cdk_aws_imagebuilder_alpha_IInfrastructureConfiguration, _aws_cdk_aws_imagebuilder_alpha_HttpTokens, _aws_cdk_aws_imagebuilder_alpha_Tenancy, _aws_cdk_aws_imagebuilder_alpha_InfrastructureConfigurationLogging, _aws_cdk_aws_imagebuilder_alpha_InfrastructureConfigurationProps, _aws_cdk_aws_imagebuilder_alpha_InfrastructureConfiguration, _aws_cdk_aws_imagebuilder_alpha_ILifecyclePolicy, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyActionType, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyStatus, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyResourceType, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyAction, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyFilter, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyCountFilter, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyAgeFilter, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyImageExclusionRules, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyAmiExclusionRules, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyExclusionRules, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyDetail, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyResourceSelection, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicyProps, _aws_cdk_aws_imagebuilder_alpha_LifecyclePolicy, _aws_cdk_aws_imagebuilder_alpha_IWorkflow, _aws_cdk_aws_imagebuilder_alpha_WorkflowProps, _aws_cdk_aws_imagebuilder_alpha_WorkflowAttributes, _aws_cdk_aws_imagebuilder_alpha_AwsManagedWorkflowAttributes, _aws_cdk_aws_imagebuilder_alpha_WorkflowAction, _aws_cdk_aws_imagebuilder_alpha_WorkflowOnFailure, _aws_cdk_aws_imagebuilder_alpha_WorkflowParameterType, _aws_cdk_aws_imagebuilder_alpha_WorkflowSchemaVersion, _aws_cdk_aws_imagebuilder_alpha_WorkflowType, _aws_cdk_aws_imagebuilder_alpha_WorkflowDataConfig, _aws_cdk_aws_imagebuilder_alpha_WorkflowData, _aws_cdk_aws_imagebuilder_alpha_S3WorkflowData, _aws_cdk_aws_imagebuilder_alpha_WorkflowParameterValue, _aws_cdk_aws_imagebuilder_alpha_WorkflowConfiguration, _aws_cdk_aws_imagebuilder_alpha_AwsManagedWorkflow, _aws_cdk_aws_imagebuilder_alpha_Workflow, _aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageAttributes, _aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions, _aws_cdk_aws_imagebuilder_alpha_AmazonManagedImage, _aws_cdk_aws_imagebuilder_alpha_BaseImage, _aws_cdk_aws_imagebuilder_alpha_BaseContainerImage, _aws_cdk_aws_imagebuilder_alpha_ContainerInstanceImage, _aws_cdk_aws_imagebuilder_alpha_Platform, _aws_cdk_aws_imagebuilder_alpha_OSVersion, _aws_cdk_aws_imagebuilder_alpha_ComponentParameterValue, _aws_cdk_aws_imagebuilder_alpha_ComponentConfiguration, _aws_cdk_aws_imagebuilder_alpha_IRecipeBase };
package/README.md CHANGED
@@ -38,7 +38,10 @@ test phase during the test stage.
38
38
 
39
39
  ### Image Pipeline
40
40
 
41
- An image pipeline provides the automation framework for building secure AMIs and container images. The pipeline orchestrates the entire image creation process by combining an image recipe or container recipe with infrastructure configuration and distribution configuration. Pipelines can run on a schedule or be triggered manually, and they manage the build, test, and distribution phases automatically.
41
+ An image pipeline provides the automation framework for building secure AMIs and container images. The pipeline
42
+ orchestrates the entire image creation process by combining an image recipe or container recipe with infrastructure
43
+ configuration and distribution configuration. Pipelines can run on a schedule or be triggered manually, and they manage
44
+ the build, test, and distribution phases automatically.
42
45
 
43
46
  #### Image Pipeline Basic Usage
44
47
 
@@ -139,7 +142,7 @@ const advancedSchedulePipeline = new imagebuilder.ImagePipeline(this, 'AdvancedS
139
142
 
140
143
  #### Image Pipeline Configuration
141
144
 
142
- ##### Infrastructure and Distribution
145
+ ##### Infrastructure and Distribution in Image Pipelines
143
146
 
144
147
  Configure custom infrastructure and distribution settings:
145
148
 
@@ -177,7 +180,7 @@ const pipelineLogGroup = new logs.LogGroup(this, 'PipelineLogGroup', {
177
180
  });
178
181
 
179
182
  const imageLogGroup = new logs.LogGroup(this, 'ImageLogGroup', {
180
- logGroupName: '/custom/imagebuilder/image/logs',
183
+ logGroupName: '/custom/imagebuilder/image/logs',
181
184
  retention: logs.RetentionDays.ONE_WEEK
182
185
  });
183
186
 
@@ -188,7 +191,7 @@ const loggedPipeline = new imagebuilder.ImagePipeline(this, 'LoggedPipeline', {
188
191
  });
189
192
  ```
190
193
 
191
- ##### Workflow Integration
194
+ ##### Workflow Integration in Image Pipelines
192
195
 
193
196
  Use AWS-managed workflows for common pipeline phases:
194
197
 
@@ -215,7 +218,7 @@ const containerWorkflowPipeline = new imagebuilder.ImagePipeline(this, 'Containe
215
218
  });
216
219
  ```
217
220
 
218
- ##### Advanced Features
221
+ ##### Advanced Features in Image Pipelines
219
222
 
220
223
  Configure image scanning for container pipelines:
221
224
 
@@ -286,6 +289,204 @@ existingPipelineByName.grantStartExecution(automationRole);
286
289
  existingPipelineByArn.grantRead(lambdaRole);
287
290
  ```
288
291
 
292
+ ### Image
293
+
294
+ An image is the output resource created by Image Builder, consisting of an AMI or container image plus metadata such as
295
+ version, platform, and creation details. Images are used as base images for future builds and can be shared across AWS
296
+ accounts. While images are the output from image pipeline executions, they can also be created in an ad-hoc manner
297
+ outside a pipeline, defined as a standalone resource.
298
+
299
+ #### Image Basic Usage
300
+
301
+ Create a simple AMI-based image from an image recipe:
302
+
303
+ ```ts
304
+ const imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {
305
+ baseImage: imagebuilder.BaseImage.fromSsmParameterName(
306
+ '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'
307
+ )
308
+ });
309
+
310
+ const amiImage = new imagebuilder.Image(this, 'MyAmiImage', {
311
+ recipe: imageRecipe
312
+ });
313
+ ```
314
+
315
+ Create a simple container image from a container recipe:
316
+
317
+ ```ts
318
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {
319
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
320
+ targetRepository: imagebuilder.Repository.fromEcr(
321
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
322
+ )
323
+ });
324
+
325
+ const containerImage = new imagebuilder.Image(this, 'MyContainerImage', {
326
+ recipe: containerRecipe
327
+ });
328
+ ```
329
+
330
+ #### AWS-Managed Images
331
+
332
+ ##### Pre-defined OS Images
333
+
334
+ Use AWS-managed images for common operating systems:
335
+
336
+ ```ts
337
+ // Amazon Linux 2023 AMI for x86_64
338
+ const amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {
339
+ imageType: imagebuilder.ImageType.AMI,
340
+ imageArchitecture: imagebuilder.ImageArchitecture.X86_64
341
+ });
342
+
343
+ // Ubuntu 22.04 AMI for ARM64
344
+ const ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {
345
+ imageType: imagebuilder.ImageType.AMI,
346
+ imageArchitecture: imagebuilder.ImageArchitecture.ARM64
347
+ });
348
+
349
+ // Windows Server 2022 Full AMI
350
+ const windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {
351
+ imageType: imagebuilder.ImageType.AMI,
352
+ imageArchitecture: imagebuilder.ImageArchitecture.X86_64
353
+ });
354
+
355
+ // Use as base image in recipe
356
+ const managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {
357
+ baseImage: amazonLinux2023Ami.toBaseImage()
358
+ });
359
+ ```
360
+
361
+ ##### Custom AWS-Managed Images
362
+
363
+ Import AWS-managed images by name or attributes:
364
+
365
+ ```ts
366
+ // Import by name
367
+ const managedImageByName = imagebuilder.AmazonManagedImage.fromAmazonManagedImageName(
368
+ this,
369
+ 'ManagedImageByName',
370
+ 'amazon-linux-2023-x86'
371
+ );
372
+
373
+ // Import by attributes with specific version
374
+ const managedImageByAttributes = imagebuilder.AmazonManagedImage.fromAmazonManagedImageAttributes(this, 'ManagedImageByAttributes', {
375
+ imageName: 'ubuntu-server-22-lts-x86',
376
+ imageVersion: '2024.11.25'
377
+ });
378
+ ```
379
+
380
+ #### Image Configuration
381
+
382
+ ##### Infrastructure and Distribution in Images
383
+
384
+ Configure custom infrastructure and distribution settings:
385
+
386
+ ```ts
387
+ const infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {
388
+ infrastructureConfigurationName: 'production-infrastructure',
389
+ instanceTypes: [
390
+ ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)
391
+ ],
392
+ vpc: vpc,
393
+ subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }
394
+ });
395
+
396
+ const distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');
397
+ distributionConfiguration.addAmiDistributions({
398
+ amiName: 'production-ami-{{ imagebuilder:buildDate }}',
399
+ amiTargetAccountIds: ['123456789012', '098765432109']
400
+ });
401
+
402
+ const productionImage = new imagebuilder.Image(this, 'ProductionImage', {
403
+ recipe: exampleImageRecipe,
404
+ infrastructureConfiguration: infrastructureConfiguration,
405
+ distributionConfiguration: distributionConfiguration
406
+ });
407
+ ```
408
+
409
+ ##### Logging Configuration
410
+
411
+ Configure custom CloudWatch log groups for image builds:
412
+
413
+ ```ts
414
+ const logGroup = new logs.LogGroup(this, 'ImageLogGroup', {
415
+ logGroupName: '/custom/imagebuilder/image/logs',
416
+ retention: logs.RetentionDays.ONE_MONTH
417
+ });
418
+
419
+ const loggedImage = new imagebuilder.Image(this, 'LoggedImage', {
420
+ recipe: exampleImageRecipe,
421
+ logGroup: logGroup
422
+ });
423
+ ```
424
+
425
+ ##### Workflow Integration in Images
426
+
427
+ Use workflows for custom build, test, and distribution processes:
428
+
429
+ ```ts
430
+ const imageWithWorkflows = new imagebuilder.Image(this, 'ImageWithWorkflows', {
431
+ recipe: exampleImageRecipe,
432
+ workflows: [
433
+ { workflow: imagebuilder.AwsManagedWorkflow.buildImage(this, 'BuildWorkflow') },
434
+ { workflow: imagebuilder.AwsManagedWorkflow.testImage(this, 'TestWorkflow') }
435
+ ]
436
+ });
437
+ ```
438
+
439
+ ##### Advanced Features in Images
440
+
441
+ Configure image scanning, metadata collection, and testing:
442
+
443
+ ```ts
444
+ const scanningRepository = new ecr.Repository(this, 'ScanningRepository');
445
+
446
+ const advancedContainerImage = new imagebuilder.Image(this, 'AdvancedContainerImage', {
447
+ recipe: exampleContainerRecipe,
448
+ imageScanningEnabled: true,
449
+ imageScanningEcrRepository: scanningRepository,
450
+ imageScanningEcrTags: ['security-scan', 'latest'],
451
+ enhancedImageMetadataEnabled: true,
452
+ imageTestsEnabled: false // Skip testing for faster builds
453
+ });
454
+ ```
455
+
456
+ #### Importing Images
457
+
458
+ Reference existing images created outside CDK:
459
+
460
+ ```ts
461
+ // Import by name
462
+ const existingImageByName = imagebuilder.Image.fromImageName(
463
+ this,
464
+ 'ExistingImageByName',
465
+ 'my-existing-image'
466
+ );
467
+
468
+ // Import by ARN
469
+ const existingImageByArn = imagebuilder.Image.fromImageArn(
470
+ this,
471
+ 'ExistingImageByArn',
472
+ 'arn:aws:imagebuilder:us-east-1:123456789012:image/imported-image/1.0.0'
473
+ );
474
+
475
+ // Import by attributes
476
+ const existingImageByAttributes = imagebuilder.Image.fromImageAttributes(this, 'ExistingImageByAttributes', {
477
+ imageName: 'shared-base-image',
478
+ imageVersion: '2024.11.25'
479
+ });
480
+
481
+ // Grant permissions to imported images
482
+ const role = new iam.Role(this, 'ImageAccessRole', {
483
+ assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com')
484
+ });
485
+
486
+ existingImageByName.grantRead(role);
487
+ existingImageByArn.grant(role, 'imagebuilder:GetImage', 'imagebuilder:ListImagePackages');
488
+ ```
489
+
289
490
  ### Image Recipe
290
491
 
291
492
  #### Image Recipe Basic Usage
@@ -396,7 +597,7 @@ const imageRecipe = new imagebuilder.ImageRecipe(this, 'ComponentImageRecipe', {
396
597
  Use pre-built AWS components:
397
598
 
398
599
  ```ts
399
- const imageRecipe = new imagebuilder.ImageRecipe(this, 'AwsManagedImageRecipe', {
600
+ const imageRecipe = new imagebuilder.ImageRecipe(this, 'AmazonManagedImageRecipe', {
400
601
  baseImage: imagebuilder.BaseImage.fromSsmParameterName(
401
602
  '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'
402
603
  ),
@@ -1103,7 +1304,8 @@ containerDistributionConfiguration.addContainerDistributions({
1103
1304
 
1104
1305
  ### Workflow
1105
1306
 
1106
- Workflows define the sequence of steps that Image Builder performs during image creation. There are three workflow types: BUILD (image building), TEST (testing images), and DISTRIBUTION (distributing container images).
1307
+ Workflows define the sequence of steps that Image Builder performs during image creation. There are three workflow
1308
+ types: BUILD (image building), TEST (testing images), and DISTRIBUTION (distributing container images).
1107
1309
 
1108
1310
  #### Basic Workflow Usage
1109
1311
 
@@ -1264,7 +1466,8 @@ const workflowFromS3 = new imagebuilder.Workflow(this, 'S3Workflow', {
1264
1466
 
1265
1467
  #### Encrypt workflow data with a KMS key
1266
1468
 
1267
- You can encrypt workflow data with a KMS key, so that only principals with access to decrypt with the key are able to access the workflow data.
1469
+ You can encrypt workflow data with a KMS key, so that only principals with access to decrypt with the key are able to
1470
+ access the workflow data.
1268
1471
 
1269
1472
  ```ts
1270
1473
  const workflow = new imagebuilder.Workflow(this, 'EncryptedWorkflow', {
@@ -1327,7 +1530,9 @@ const distributeContainerWorkflow = imagebuilder.AwsManagedWorkflow.distributeCo
1327
1530
 
1328
1531
  ### Lifecycle Policy
1329
1532
 
1330
- Lifecycle policies help you manage the retention and cleanup of Image Builder resources automatically. These policies define rules for deprecating or deleting old image versions, managing AMI snapshots, and controlling resource costs by removing unused images based on age, count, or other criteria.
1533
+ Lifecycle policies help you manage the retention and cleanup of Image Builder resources automatically. These policies
1534
+ define rules for deprecating or deleting old image versions, managing AMI snapshots, and controlling resource costs by
1535
+ removing unused images based on age, count, or other criteria.
1331
1536
 
1332
1537
  #### Lifecycle Policy Basic Usage
1333
1538
 
@@ -1642,7 +1847,7 @@ const disabledPolicy = new imagebuilder.LifecyclePolicy(this, 'DisabledPolicy',
1642
1847
 
1643
1848
  ##### Importing Lifecycle Policies
1644
1849
 
1645
- Reference lifecycle policies created outside of CDK:
1850
+ Reference lifecycle policies created outside CDK:
1646
1851
 
1647
1852
  ```ts
1648
1853
  // Import by name
@@ -1660,5 +1865,5 @@ const importedByArn = imagebuilder.LifecyclePolicy.fromLifecyclePolicyArn(
1660
1865
  );
1661
1866
 
1662
1867
  importedByName.grantRead(lambdaRole);
1663
- importedByArn.grant(lambdaRole, 'imagebuilder:PutLifecyclePolicy');
1868
+ importedByArn.grant(lambdaRole, 'imagebuilder:UpdateLifecyclePolicy');
1664
1869
  ```
package/awslint.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "exclude": [
3
3
  "props-no-arn-refs:@aws-cdk/aws-imagebuilder-alpha.InfrastructureConfigurationProps.ec2InstanceHostResourceGroupArn",
4
+ "props-physical-name:@aws-cdk/aws-imagebuilder-alpha.ImageProps",
4
5
  "no-unused-type:@aws-cdk/aws-imagebuilder-alpha.ContainerType",
5
6
  "no-unused-type:@aws-cdk/aws-imagebuilder-alpha.WorkflowAction",
6
7
  "no-unused-type:@aws-cdk/aws-imagebuilder-alpha.WorkflowOnFailure",
@@ -0,0 +1,2 @@
1
+ {
2
+ }
@@ -0,0 +1,242 @@
1
+ import { Construct } from 'constructs';
2
+ import { IImage, ImageArchitecture, ImageType } from './image';
3
+ /**
4
+ * Attributes for importing an Amazon-managed image by name (and optionally a version)
5
+ */
6
+ export interface AmazonManagedImageAttributes {
7
+ /**
8
+ * The name of the Amazon-managed image. The provided name must be normalized by converting all alphabetical
9
+ * characters to lowercase, and replacing all spaces and underscores with hyphens.
10
+ */
11
+ readonly imageName: string;
12
+ /**
13
+ * The version of the Amazon-managed image
14
+ *
15
+ * @default x.x.x
16
+ */
17
+ readonly imageVersion?: string;
18
+ }
19
+ /**
20
+ * Options for selecting a predefined Amazon-managed image
21
+ */
22
+ export interface AmazonManagedImageOptions {
23
+ /**
24
+ * The architecture of the Amazon-managed image
25
+ */
26
+ readonly imageArchitecture: ImageArchitecture;
27
+ /**
28
+ * The type of the Amazon-managed image
29
+ */
30
+ readonly imageType: ImageType;
31
+ /**
32
+ * The version of the Amazon-managed image
33
+ *
34
+ * @default x.x.x
35
+ */
36
+ readonly imageVersion?: string;
37
+ }
38
+ /**
39
+ * Helper class for working with Amazon-managed images
40
+ */
41
+ export declare class AmazonManagedImage {
42
+ /**
43
+ * Imports the Amazon Linux 2 Amazon-managed image
44
+ *
45
+ * @param scope The construct scope
46
+ * @param id Identifier of the construct
47
+ * @param opts The Amazon-managed image attributes
48
+ *
49
+ * @see https://docs.aws.amazon.com/linux/al2/ug/index.html
50
+ * @see https://gallery.ecr.aws/amazonlinux/amazonlinux
51
+ */
52
+ static amazonLinux2(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
53
+ /**
54
+ * Imports the Amazon Linux 2023 Amazon-managed image
55
+ *
56
+ * @param scope The construct scope
57
+ * @param id Identifier of the construct
58
+ * @param opts The Amazon-managed image attributes
59
+ *
60
+ * @see https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html
61
+ * @see https://gallery.ecr.aws/amazonlinux/amazonlinux
62
+ */
63
+ static amazonLinux2023(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
64
+ /**
65
+ * Imports the Red Hat Enterprise Linux 10 Amazon-managed image
66
+ *
67
+ * @param scope The construct scope
68
+ * @param id Identifier of the construct
69
+ * @param opts The Amazon-managed image attributes
70
+ *
71
+ * @see https://aws.amazon.com/partners/redhat/faqs
72
+ */
73
+ static redHatEnterpriseLinux10(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
74
+ /**
75
+ * Imports the SUSE Linux Enterprise Server 15 Amazon-managed image
76
+ *
77
+ * @param scope The construct scope
78
+ * @param id Identifier of the construct
79
+ * @param opts The Amazon-managed image attributes
80
+ *
81
+ * @see https://aws.amazon.com/linux/commercial-linux/faqs/
82
+ */
83
+ static suseLinuxEnterpriseServer15(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
84
+ /**
85
+ * Imports the Ubuntu 22.04 Amazon-managed image
86
+ *
87
+ * @param scope The construct scope
88
+ * @param id Identifier of the construct
89
+ * @param opts The Amazon-managed image attributes
90
+ *
91
+ * @see https://documentation.ubuntu.com/aws
92
+ * @see https://hub.docker.com/_/ubuntu
93
+ */
94
+ static ubuntuServer2204(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
95
+ /**
96
+ * Imports the Ubuntu 24.04 Amazon-managed image
97
+ *
98
+ * @param scope The construct scope
99
+ * @param id Identifier of the construct
100
+ * @param opts The Amazon-managed image attributes
101
+ *
102
+ * @see https://documentation.ubuntu.com/aws
103
+ * @see https://hub.docker.com/_/ubuntu
104
+ */
105
+ static ubuntuServer2404(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
106
+ /**
107
+ * Imports the Windows Server 2016 Core Amazon-managed image
108
+ *
109
+ * @param scope The construct scope
110
+ * @param id Identifier of the construct
111
+ * @param opts The Amazon-managed image attributes
112
+ *
113
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
114
+ * @see https://hub.docker.com/r/microsoft/windows-servercore
115
+ */
116
+ static windowsServer2016Core(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
117
+ /**
118
+ * Imports the Windows Server 2016 Full Amazon-managed image
119
+ *
120
+ * @param scope The construct scope
121
+ * @param id Identifier of the construct
122
+ * @param opts The Amazon-managed image attributes
123
+ *
124
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
125
+ */
126
+ static windowsServer2016Full(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
127
+ /**
128
+ * Imports the Windows Server 2019 Core Amazon-managed image
129
+ *
130
+ * @param scope The construct scope
131
+ * @param id Identifier of the construct
132
+ * @param opts The Amazon-managed image attributes
133
+ *
134
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
135
+ * @see https://hub.docker.com/r/microsoft/windows-servercore
136
+ */
137
+ static windowsServer2019Core(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
138
+ /**
139
+ * Imports the Windows Server 2019 Full Amazon-managed image
140
+ *
141
+ * @param scope The construct scope
142
+ * @param id Identifier of the construct
143
+ * @param opts The Amazon-managed image attributes
144
+ *
145
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
146
+ */
147
+ static windowsServer2019Full(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
148
+ /**
149
+ * Imports the Windows Server 2022 Core Amazon-managed image
150
+ *
151
+ * @param scope The construct scope
152
+ * @param id Identifier of the construct
153
+ * @param opts The Amazon-managed image attributes
154
+ *
155
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
156
+ */
157
+ static windowsServer2022Core(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
158
+ /**
159
+ * Imports the Windows Server 2022 Full Amazon-managed image
160
+ *
161
+ * @param scope The construct scope
162
+ * @param id Identifier of the construct
163
+ * @param opts The Amazon-managed image attributes
164
+ *
165
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
166
+ */
167
+ static windowsServer2022Full(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
168
+ /**
169
+ * Imports the Windows Server 2025 Core Amazon-managed image
170
+ *
171
+ * @param scope The construct scope
172
+ * @param id Identifier of the construct
173
+ * @param opts The Amazon-managed image attributes
174
+ *
175
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
176
+ */
177
+ static windowsServer2025Core(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
178
+ /**
179
+ * Imports the Windows Server 2025 Full Amazon-managed image
180
+ *
181
+ * @param scope The construct scope
182
+ * @param id Identifier of the construct
183
+ * @param opts The Amazon-managed image attributes
184
+ *
185
+ * @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
186
+ */
187
+ static windowsServer2025Full(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
188
+ /**
189
+ * Imports the macOS 14 Amazon-managed image
190
+ *
191
+ * @param scope The construct scope
192
+ * @param id Identifier of the construct
193
+ * @param opts The Amazon-managed image attributes
194
+ *
195
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html
196
+ */
197
+ static macOS14(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
198
+ /**
199
+ * Imports the macOS 15 Amazon-managed image
200
+ *
201
+ * @param scope The construct scope
202
+ * @param id Identifier of the construct
203
+ * @param opts The Amazon-managed image attributes
204
+ *
205
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html
206
+ */
207
+ static macOS15(scope: Construct, id: string, opts: AmazonManagedImageOptions): IImage;
208
+ /**
209
+ * Imports an Amazon-managed image from its attributes
210
+ *
211
+ * @param scope The construct scope
212
+ * @param id Identifier of the construct
213
+ * @param attrs - The Amazon-managed image attributes
214
+ */
215
+ static fromAmazonManagedImageAttributes(scope: Construct, id: string, attrs: AmazonManagedImageAttributes): IImage;
216
+ /**
217
+ * Imports an Amazon-managed image from its name
218
+ *
219
+ * @param scope The construct scope
220
+ * @param id Identifier of the construct
221
+ * @param amazonManagedImageName - The name of the Amazon-managed image
222
+ */
223
+ static fromAmazonManagedImageName(scope: Construct, id: string, amazonManagedImageName: string): IImage;
224
+ private static readonly AMAZON_LINUX_2_CONFIG;
225
+ private static readonly AMAZON_LINUX_2023_CONFIG;
226
+ private static readonly RED_HAT_ENTERPRISE_LINUX_10_CONFIG;
227
+ private static readonly SUSE_LINUX_ENTERPRISE_SERVER_15_CONFIG;
228
+ private static readonly UBUNTU_SERVER_22_04_CONFIG;
229
+ private static readonly UBUNTU_SERVER_24_04_CONFIG;
230
+ private static readonly WINDOWS_SERVER_2016_CORE_CONFIG;
231
+ private static readonly WINDOWS_SERVER_2016_FULL_CONFIG;
232
+ private static readonly WINDOWS_SERVER_2019_CORE_CONFIG;
233
+ private static readonly WINDOWS_SERVER_2019_FULL_CONFIG;
234
+ private static readonly WINDOWS_SERVER_2022_CORE_CONFIG;
235
+ private static readonly WINDOWS_SERVER_2022_FULL_CONFIG;
236
+ private static readonly WINDOWS_SERVER_2025_CORE_CONFIG;
237
+ private static readonly WINDOWS_SERVER_2025_FULL_CONFIG;
238
+ private static readonly MACOS_14_CONFIG;
239
+ private static readonly MACOS_15_CONFIG;
240
+ private static validatePredefinedManagedImageOptions;
241
+ private static predefinedManagedImage;
242
+ }