createLifecyclePolicy
inline suspend fun ImagebuilderClient.createLifecyclePolicy(crossinline block: CreateLifecyclePolicyRequest.Builder.() -> Unit): CreateLifecyclePolicyResponse
Creates a lifecycle policy resource.
Samples
// The following example creates a lifecycle policy that deletes AMI based images six months after they
// were created, selecting the images that match the specified resource tags.
val resp = imagebuilderClient.createLifecyclePolicy {
name = "my-example-lifecycle-policy"
executionRole = "arn:aws:iam::111122223333:role/my-example-lifecycle-role"
resourceType = LifecyclePolicyResourceType.fromValue("AMI_IMAGE")
policyDetails = listOf<LifecyclePolicyDetail>(
LifecyclePolicyDetail {
action = LifecyclePolicyDetailAction {
type = LifecyclePolicyDetailActionType.fromValue("DELETE")
}
filter = LifecyclePolicyDetailFilter {
type = LifecyclePolicyDetailFilterType.fromValue("AGE")
value = 6
unit = LifecyclePolicyTimeUnit.fromValue("MONTHS")
}
}
)
resourceSelection = LifecyclePolicyResourceSelection {
tagMap = mapOf<String, String>(
"Environment" to "test"
)
}
clientToken = "a1b2c3d4-5678-90ab-cdef-EXAMPLE13579"
}Content copied to clipboard
// The following example creates a lifecycle policy that deletes images created from the specified
// recipe version after six months. The policy excludes images whose AMIs launched an instance within the
// last 30 days or are tagged to be retained.
val resp = imagebuilderClient.createLifecyclePolicy {
name = "my-example-lifecycle-policy"
executionRole = "arn:aws:iam::111122223333:role/my-example-lifecycle-role"
resourceType = LifecyclePolicyResourceType.fromValue("AMI_IMAGE")
policyDetails = listOf<LifecyclePolicyDetail>(
LifecyclePolicyDetail {
action = LifecyclePolicyDetailAction {
type = LifecyclePolicyDetailActionType.fromValue("DELETE")
}
filter = LifecyclePolicyDetailFilter {
type = LifecyclePolicyDetailFilterType.fromValue("AGE")
value = 6
unit = LifecyclePolicyTimeUnit.fromValue("MONTHS")
}
exclusionRules = LifecyclePolicyDetailExclusionRules {
amis = LifecyclePolicyDetailExclusionRulesAmis {
lastLaunched = LifecyclePolicyDetailExclusionRulesAmisLastLaunched {
value = 30
unit = LifecyclePolicyTimeUnit.fromValue("DAYS")
}
tagMap = mapOf<String, String>(
"Retention" to "keep"
)
}
}
}
)
resourceSelection = LifecyclePolicyResourceSelection {
recipes = listOf<LifecyclePolicyResourceSelectionRecipe>(
LifecyclePolicyResourceSelectionRecipe {
name = "my-example-recipe"
semanticVersion = "1.0.0"
}
)
}
clientToken = "a1b2c3d4-5678-90ab-cdef-EXAMPLE43210"
}Content copied to clipboard