Class LifecyclePolicy


  • public class LifecyclePolicy
    extends com.pulumi.resources.CustomResource
    Manages an Image Builder Lifecycle Policy. ## Example Usage <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.AwsFunctions;
     import com.pulumi.aws.inputs.GetRegionArgs;
     import com.pulumi.aws.inputs.GetPartitionArgs;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.iam.RolePolicyAttachment;
     import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
     import com.pulumi.aws.imagebuilder.LifecyclePolicy;
     import com.pulumi.aws.imagebuilder.LifecyclePolicyArgs;
     import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailArgs;
     import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailActionArgs;
     import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailFilterArgs;
     import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionArgs;
     import static com.pulumi.codegen.internal.Serialization.*;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             final var current = AwsFunctions.getRegion();
     
             final var currentGetPartition = AwsFunctions.getPartition();
     
             var example = new Role("example", RoleArgs.builder()
                 .assumeRolePolicy(serializeJson(
                     jsonObject(
                         jsonProperty("Version", "2012-10-17"),
                         jsonProperty("Statement", jsonArray(jsonObject(
                             jsonProperty("Action", "sts:AssumeRole"),
                             jsonProperty("Effect", "Allow"),
                             jsonProperty("Principal", jsonObject(
                                 jsonProperty("Service", String.format("imagebuilder.%s", currentGetPartition.applyValue(getPartitionResult -> getPartitionResult.dnsSuffix())))
                             ))
                         )))
                     )))
                 .name("example")
                 .build());
     
             var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
                 .policyArn(String.format("arn:%s:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy", currentGetPartition.applyValue(getPartitionResult -> getPartitionResult.partition())))
                 .role(example.name())
                 .build());
     
             var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
                 .name("name")
                 .description("Example description")
                 .executionRole(example.arn())
                 .resourceType("AMI_IMAGE")
                 .policyDetails(LifecyclePolicyPolicyDetailArgs.builder()
                     .action(LifecyclePolicyPolicyDetailActionArgs.builder()
                         .type("DELETE")
                         .build())
                     .filter(LifecyclePolicyPolicyDetailFilterArgs.builder()
                         .type("AGE")
                         .value(6)
                         .retainAtLeast(10)
                         .unit("YEARS")
                         .build())
                     .build())
                 .resourceSelection(LifecyclePolicyResourceSelectionArgs.builder()
                     .tagMap(Map.ofEntries(
                         Map.entry("key1", "value1"),
                         Map.entry("key2", "value2")
                     ))
                     .build())
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(exampleRolePolicyAttachment)
                     .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ## Import Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: ```sh $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()  
      com.pulumi.core.Output<java.lang.String> executionRole()  
      static LifecyclePolicy get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, LifecyclePolicyState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> name()  
      com.pulumi.core.Output<java.util.Optional<java.util.List<LifecyclePolicyPolicyDetail>>> policyDetails()  
      com.pulumi.core.Output<java.util.Optional<LifecyclePolicyResourceSelection>> resourceSelection()  
      com.pulumi.core.Output<java.lang.String> resourceType()  
      com.pulumi.core.Output<java.lang.String> status()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LifecyclePolicy

        public LifecyclePolicy​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • LifecyclePolicy

        public LifecyclePolicy​(java.lang.String name,
                               LifecyclePolicyArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • LifecyclePolicy

        public LifecyclePolicy​(java.lang.String name,
                               LifecyclePolicyArgs args,
                               @Nullable
                               com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        Amazon Resource Name (ARN) of the lifecycle policy.
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        description for the lifecycle policy.
      • executionRole

        public com.pulumi.core.Output<java.lang.String> executionRole()
        Returns:
        The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        The name of the lifecycle policy to create.
      • policyDetails

        public com.pulumi.core.Output<java.util.Optional<java.util.List<LifecyclePolicyPolicyDetail>>> policyDetails()
        Returns:
        Configuration block with policy details. Detailed below.
      • resourceSelection

        public com.pulumi.core.Output<java.util.Optional<LifecyclePolicyResourceSelection>> resourceSelection()
        Returns:
        Selection criteria for the resources that the lifecycle policy applies to. Detailed below. The following arguments are optional:
      • resourceType

        public com.pulumi.core.Output<java.lang.String> resourceType()
        Returns:
        The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.
      • status

        public com.pulumi.core.Output<java.lang.String> status()
        Returns:
        The status of the lifecycle policy.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
      • get

        public static LifecyclePolicy get​(java.lang.String name,
                                          com.pulumi.core.Output<java.lang.String> id,
                                          @Nullable
                                          LifecyclePolicyState state,
                                          @Nullable
                                          com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.