package software.amazon.imagebuilder.imagerecipe; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import software.amazon.awssdk.services.imagebuilder.model.AdditionalInstanceConfiguration; import software.amazon.awssdk.services.imagebuilder.model.ComponentParameter; import software.amazon.awssdk.services.imagebuilder.model.InstanceBlockDeviceMapping; import software.amazon.awssdk.services.imagebuilder.model.EbsInstanceBlockDeviceSpecification; import software.amazon.awssdk.services.imagebuilder.model.ComponentConfiguration; import software.amazon.awssdk.services.imagebuilder.model.EbsVolumeType; import software.amazon.awssdk.services.imagebuilder.model.ImageRecipe; import software.amazon.awssdk.services.imagebuilder.model.ImageRecipeSummary; import software.amazon.awssdk.services.imagebuilder.model.SystemsManagerAgent; import java.util.List; import java.util.Map; public class TestUtil { static final List<ImageRecipeSummary> IMAGE_RECIPE_SUMMARIES = ImmutableList.of( generateImageRecipeSummaryForTest() ); static final List<ComponentConfiguration> COMPONENT_CONFIGURATIONS = ImmutableList.of( ComponentConfiguration.builder() .parameters(ImmutableList.of(ComponentParameter.builder() .name("ParameterName") .value(ImmutableList.of("ParameterValue1", "ParameterValue2")) .build())) .componentArn("component-arn-1") .build(), ComponentConfiguration.builder() .componentArn("component-arn-2") .build() ); static final List<InstanceBlockDeviceMapping> INSTANCE_BLOCK_DEVICE_MAPPINGS = ImmutableList.of( InstanceBlockDeviceMapping.builder() .deviceName("deviceName") .virtualName("virtualName") .noDevice("noDevice") .ebs(EbsInstanceBlockDeviceSpecification.builder() .deleteOnTermination(false) .encrypted(false) .iops(200) .kmsKeyId("kmsKeyId") .snapshotId("snapshotId") .volumeSize(10) .volumeType(EbsVolumeType.GP2.name()) .throughput(125) .build() ).build() ); /** * Base64 decoded userDataOverride from below recipe: * * #!/bin/bash * mkdir -p /var/bb/ * touch /var/bb/user-data-override-test.txt**/ static final AdditionalInstanceConfiguration ADDITIONAL_INSTANCE_CONFIGURATION = AdditionalInstanceConfiguration.builder() .systemsManagerAgent(SystemsManagerAgent.builder().uninstallAfterBuild(true).build()) .userDataOverride("IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci9iYi91c2VyLWRhdGEtb3ZlcnJpZGUtdGVzdC50eHQ=") .build(); static final String READ_IMAGE_RECIPE_ARN = "arn::prefix/read-image-recipe/1.0.0/1"; final String DELETED_IMAGE_RECIPE_ARN = "arn::prefix/delete-image-recipe/1.0.0/1"; private static final Map<String, String> TAG_MAPS = ImmutableMap.of("key1","value1","key2","value2"); static ImageRecipe generateImageRecipeForTest() { return ImageRecipe.builder() .arn(READ_IMAGE_RECIPE_ARN) .name("image-recipe-name-test") .version("1.0.0") .description("description-test") .components(COMPONENT_CONFIGURATIONS) .blockDeviceMappings(INSTANCE_BLOCK_DEVICE_MAPPINGS) .additionalInstanceConfiguration(ADDITIONAL_INSTANCE_CONFIGURATION) .parentImage("parent-image") .owner("Self") .platform("Linux") .dateCreated("create-date-test") .tags(TAG_MAPS) .build(); } static ImageRecipeSummary generateImageRecipeSummaryForTest () { return ImageRecipeSummary.builder() .arn("image-recipe-arn-test") .name("image-recipe-name-test") .tags(TAG_MAPS) .parentImage("parent-image") .dateCreated("date-created-test") .owner("owner-test") .platform("Linux") .build(); } }